我正在尝试在Unity中复制以下Ninject语法,但没有任何运气:
Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);
我认为应该看起来像:
IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);
应该怎么做?
答案 0 :(得分:11)
虽然neontapir's答案可行,但该扩展方法已过时。现在正确的方法是使用InjectionFactory:
container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
答案 1 :(得分:1)
container.RegisterInstance<IIdentity>(...);
答案 2 :(得分:0)
我相信static factory extension会做到这一点。我在Unity上生气了。 Seeman的 .NET中的依赖注入对于这种情况来说是一个很好的资源。