相当于Ninject的Bind.ToMethod of IPrincipal,IIdentity

时间:2011-11-23 17:43:10

标签: c# .net unity-container ninject iidentity

我正在尝试在Unity中复制以下Ninject语法,但没有任何运气:

Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);

我认为应该看起来像:

IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);

应该怎么做?

3 个答案:

答案 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中的依赖注入对于这种情况来说是一个很好的资源。