Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC3项目中标准ninject和ninject.web.mvc之间的差异?_C#_Asp.net Mvc 3_Ninject_Ninject.web.mvc - Fatal编程技术网

C# MVC3项目中标准ninject和ninject.web.mvc之间的差异?

C# MVC3项目中标准ninject和ninject.web.mvc之间的差异?,c#,asp.net-mvc-3,ninject,ninject.web.mvc,C#,Asp.net Mvc 3,Ninject,Ninject.web.mvc,我了解Ninject的一些功能,并能够将其用于国际奥委会 当我使用NuGet将对Ninject的引用添加到VS2010中的项目中时,我会在列表中看到其他Ninject扩展。特别是Ninject.MVC3。同样在Ninject网站的extensions()下,我看到了Ninject.Web.Mvc 如果我正在创建MVC3应用程序,我需要使用Ninject的这个扩展吗?我在类/接口中基本使用Ninject for IoC是否需要标准库之外的任何东西 在MVC3项目中,Ninject和Ninject.

我了解Ninject的一些功能,并能够将其用于国际奥委会

当我使用NuGet将对Ninject的引用添加到VS2010中的项目中时,我会在列表中看到其他Ninject扩展。特别是Ninject.MVC3。同样在Ninject网站的extensions()下,我看到了Ninject.Web.Mvc

如果我正在创建MVC3应用程序,我需要使用Ninject的这个扩展吗?我在类/接口中基本使用Ninject for IoC是否需要标准库之外的任何东西


在MVC3项目中,Ninject和Ninject.MVC3/Ninject.Web.Mvc之间有什么区别?

Ninject.Web.Mvc
是ASP Mvc(3)应用程序的Ninject(核心)补充。基本上-当您想在ASP MVC项目中使用Ninject时,应该使用它

从:

此扩展允许Ninject核心和ASP.NET之间的集成 MVC项目。要使用它,只需创建您的HttpApplication(通常在 Global.asax.cs)扩展NinjectHttpApplication:

MVC 3扩展包含将DI组合根连接到MVC应用程序的关键方法——这意味着Ninject将负责实例化依赖于其他组件的控制器(Ninject“覆盖”了
DefaultControllerFactory
的使用,后者只能使用无参数构造函数创建控制器)

文档中提到了两种方法:在
global.asax
中扩展
NinjectHttpCompliance
,或者在
App_Start
文件夹中使用
NinjectWebCommon


还有一个扩展,它是
ninject.web.mvc
所必需的。它包含例如
InRequestScope

中的定义。你是说ninject.web.mvc允许ninject与mvc应用程序的mvc特定类/接口交互,而标准ninject不支持它们吗?我可能需要进一步研究Ninject在MVC应用程序中处理控制器的各种原因和示例。不是真的。关键是
Ninject.web.MVC
提供了扩展的控制器工厂,能够在控制器中注入依赖项(根据composition root中定义的绑定-通常是global.asax)(使用
Ninject.core
)因此,您不需要通过某种方式将ninject
kernel
的实例传递到您的应用程序中——这将通过服务定位器模式闻到味道——并且可以享受(构造函数)依赖注入的优点。