Альтернатива методам TheDefault и ConstructedBy в Unity - PullRequest
1 голос
/ 03 октября 2010

В основном я хотел бы вводить то, что находится в HttpContext.Current.User каждый раз, когда я запрашиваю IPrincipal. Это код в StructureMap:

ForRequestedType<IPrincipal>()
  .CacheBy(InstanceScope.Hybrid)
  .TheDefault.Is.ConstructedBy(ctx => HttpContext.Current.User)

Как мне добиться того же в Unity?

1 Ответ

4 голосов
/ 03 октября 2010

это можно сделать с помощью InjectionFactory в Unity 2.0 или StaticFactoryExtension в предыдущей версии Unity.

 var container = new UnityContainer(); // unity 2.0
 container.RegisterType<IPrincipal>(new InjectionFactory(_ => HttpContext.Current.User));
...