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

Alf*_*red 6 .net c# ninject unity-container iidentity

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

Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);
Run Code Online (Sandbox Code Playgroud)

我认为应该看起来像:

IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);
Run Code Online (Sandbox Code Playgroud)

应该怎么样?

BFr*_*ree 11

虽然neontapir的答案可行,但该扩展方法已过时.现在正确的方法是使用InjectionFactory:

container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
Run Code Online (Sandbox Code Playgroud)