我正在尝试在 Unity 中复制以下 Ninject 语法,但没有任何运气:
Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);
我认为它应该看起来像:
IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);
应该如何?
我正在尝试在 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 中的依赖注入对于这种情况来说是一个很好的资源。