我了解Ninject的一些功能,并且能够在IoC中使用它。
当我使用NuGet向VS2010中的项目添加对Ninject的引用时,我在列表中看到了其他Ninject扩展。特别是Ninject.MVC3。另外,在Ninject网站的扩展( http://www.ninject.org/extensions.html )下,我看到了Ninject.Web.Mvc。
如果我正在创建MVC3应用程序,我需要使用这个扩展吗?我在类/接口上使用IoC的基本用法需要标准库以外的东西吗?
在MVC3项目中,Ninject和Ninject.MVC3/Ninject.Web.Mvc有什么区别?
发布于 2013-04-01 03:12:34
ninject.web.mvc是对ASP (3)应用程序的一个主要(核心)补充。基本上-当你想在一个ASP MVC项目中使用Ninject时,你应该使用它。
这个扩展允许在
核心和ASP.NET MVC项目之间进行集成。要使用它,只需使您的HttpApplication (通常在Global.asax.cs中)扩展NinjectHttpApplication:
MVC3扩展包含了将DI组合根连接到MVC应用程序中的关键方法--这意味着Ninject将负责实例化依赖于其他组件的控制器(Ninjects“覆盖”了DefaultControllerFactory的使用,后者只能使用无参数构造函数创建控制器)。
文档中提到了两种方法::在global.asax中扩展NinjectHttpApliaction或使用App_Start文件夹中的NinjectWebCommon类。
还有ninject.web.mvc所需的ninject.web.common扩展。它包含例如InRequestScope的定义。
https://stackoverflow.com/questions/15733159
复制相似问题