最近,我将我的一个MVC3项目从Ninject 2升级到了Ninject 3。
花了几分钟时间尝试找出为什么InRequestScope不再可用后,我发现这现在是Ninject.Web.Common的扩展。
现在,当我尝试运行应用程序时,Ninject的工作方式就像将所有绑定到InRequest范围的类型都绑定到InTransientScope一样;每次都会创建一个新实例。
在我的继承自NinjectModule的类中,我有一个简单的绑定,像这样:
Bind<ViewModel.Activity>().ToSelf().InRequestScope();
在我的控制器中,我有两个被标记为Ninject属性的ViewModel.Activity类型属性。 [Inject]
public ViewModel.Activity Activity { get; set; }
[Inject]
public ViewModel.Activity Activity1 { get; set; }
如果我在调试模式下查看这两个属性的HashCode值,它们都有不同的值,但HttpContext是相同的;我在同一个请求中。
我错过了如何正确使用新版本的Ninject 3中的新Ninject.Web.Common.InRequestScope的内容?
非常感谢。