我试图在Unity中复制以下Ninject语法,但没有任何运气:
Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);
我想它应该是这样的:
IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);
应该是怎样的?
虽然neontapir的答案可以工作,但这种扩展方法已经过时了。现在正确的做法是使用InjectionFactory:
container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
container.RegisterInstance<IIdentity>(...);
我相信静态工厂扩展可以做到这一点。我对Unity已经生疏了。Seeman在。net 中的依赖注入是一个很好的资源。