Asp.net mvc 使用应用程序\u启动HttpApplication构造函数?

Asp.net mvc 使用应用程序\u启动HttpApplication构造函数?,asp.net-mvc,Asp.net Mvc,我正在处理一个ASP.NETMVC4.0项目,我注意到默认情况下,global.asax文件如下所示 namespace Application1.Web { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.Ht

我正在处理一个
ASP.NETMVC4.0
项目,我注意到默认情况下,
global.asax
文件如下所示

namespace Application1.Web {
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801
    public class MvcApplication : System.Web.HttpApplication {
        protected void Application_Start() {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}
我想使用
Application\u Start
而不是把它放在构造函数中,有什么具体原因吗?我在不知情的情况下做到了这两个方面,并且从来没有遇到过任何问题


这个问题不是为了解决问题,只是为了得到我所缺乏的信息。如果是多余的,我很抱歉。

其他人可能能够提供更深入的答案,但是,一些方法,如
开始请求
将根据请求执行<代码>会话\u启动将在每个用户会话开始时执行

但是,
Application\u Start
只执行一次,因此是线程安全的。如果要将这些调用移动到构造函数中,则会对每个请求执行这些方法,因为每个请求都会实例化该对象

以下是来自的一个片段:

初始化所有核心应用程序对象后,通过创建HttpApplication类的实例启动应用程序如果应用程序有一个Global.asax文件,ASP.NET将创建一个从HttpApplication类派生的Global.asax类的实例,并使用派生类来表示应用程序