gpt4 book ai didi

c# - MVC3 项目中标准 ninject 和 ninject.web.mvc 之间的区别?

转载 作者:行者123 更新时间:2023-11-30 15:00:11 26 4
gpt4 key购买 nike

我了解 Ninject 的一些功能并且能够将其用于 IoC。

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

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

Ninject 和 MVC3 项目中的 Ninject.MVC3/Ninject.Web.Mvc 有什么区别?

最佳答案

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

来自documentation :

This extension allows integration between the Ninject core and ASP.NET MVC projects. To use it, just make your HttpApplication (typically in Global.asax.cs) extend NinjectHttpApplication:

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

文档中提到了两种方法,how to do it : 扩展 global.asax 中的 NinjectHttpApliaction 或使用 App_Start 文件夹中的 NinjectWebCommon 类。

还有ninject.web.common扩展名,这是 ninject.web.mvc 所必需的。它包含例如InRequestScope 的定义。

关于c# - MVC3 项目中标准 ninject 和 ninject.web.mvc 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com