6

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

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

我认为它应该看起来像:

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

应该如何?

4

3 回答 3

11

虽然neontapir 的答案可能有效,但该扩展方法已过时。现在执行此操作的正确方法是使用InjectionFactory

container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
于 2011-11-23T18:01:06.190 回答
1
container.RegisterInstance<IIdentity>(...);
于 2011-11-23T17:50:31.827 回答
0

我相信静态工厂扩展会做到这一点。我对 Unity 生疏了。Seeman在 .NET 中的依赖注入对于这种情况来说是一个很好的资源。

于 2011-11-23T17:56:42.617 回答