基本上我想做的是每当我要求IPrincipal时注入HttpContext.Current.User中的内容。这是StructureMap中的代码:
ForRequestedType<IPrincipal>()
.CacheBy(InstanceScope.Hybrid)
.TheDefault.Is.ConstructedBy(ctx => HttpContext.Current.User)
如何在Unity中实现相同目标?
答案 0 :(得分:4)
这可以使用Unity 2.0中的InjectionFactory或Unity早期版本中的StaticFactoryExtension来完成。
var container = new UnityContainer(); // unity 2.0
container.RegisterType<IPrincipal>(new InjectionFactory(_ => HttpContext.Current.User));