我真的需要Ninject.MVC3中的App_Start内容吗?

时间:2011-03-18 16:51:40

标签: .net ninject

从NuGet下载Ninject.MVC3包创建了这个App_Start文件夹,里面有一个简单的类;哪个甚至都没有开箱即用,我可能会补充一下。

浏览它,它似乎没有任何壮观的......功能......或者根本没有。我也没有在项目本身来自SampleApplication的{​​{1}}中找到它。 (https://github.com/ninject/ninject.web.mvc/tree/master/mvc3/src/SampleApplication)

有人可以解释这个文件夹/类的目的吗?删除它们似乎对我的项目没有影响。是否有一些神秘的忍者理由为什么我需要保留它们? (或者甚至为什么它们首先被制造出来?)

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

最新版本的Ninject.MVC3在您的项目中创建一个名为App_Start的文件夹。该文件夹包含NinjectMVC3.cs类,它是Ninject框架的引导程序代码。它有两个程序集属性,用于启动和停止NinjectMVC3代码。正是这些属性导致WebActivator框架调用引导程序类方法并启动Ninject框架。安装NinjectMVC3还会为Microsoft.Web.Infrastructure,Ninject,NinjectMVC3和WebActivator添加程序集引用。

NinjectMVC3类包含RegisterServices方法,您可以在其中添加代码以将接口绑定到其具体实现。这是您要编辑以配置依赖项的文件。

这是使用Ninject和MVC应用程序来处理依赖关系所必需的,也是唯一的要求。有关向global.asax.cs添加代码的其他说明应该被忽略。

答案 2 :(得分:0)

这里的同样问题给出了简短的回答=“否”。这只是一个新的惯例,只对大型网站有意义,甚至不确定。

http://weblogs.asp.net/pjohnson/archive/2012/09/07/mvc-4-and-the-app-start-folder.aspx

我个人更喜欢处理全局应用程序类中的所有路由和过滤器覆盖,将所有常见内容转移到共享基类,因此它只包含特定于网站的代码。我认为不需要单独的课程。

ASP.NET特殊文件夹的常见情况是它们提供不同的安全权限。有谁知道在部分信任环境中是否需要此App_Start文件夹?即限制网络托管,这是唯一允许您调用功能以改变网站路由方式的地方吗?

听起来MS的某个人正在考虑将此作为额外的安全层添加,如果它还没有。直到我看到现实世界的好处,我才会删除它。

相关问题