举例来说,在一个由带有个人帐户的MVC模板制作的全新ASP.NET MVC 5应用程序中,如果我删除Global.asax.cs该类并将其配置代码移至Startup.cs Configuration()方法如下,会有什么弊端?
Global.asax.cs
Startup.cs
Configuration()
public partial class Startup { public void Configuration(IAppBuilder app) { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ConfigureAuth(app); } }
对我来说,好处是,当将ASP.NET 4应用程序升级到ASP.NET 5并使用必须在Startup.cs类中配置的组件时,我没有在似乎相关的两个不同类中进行依赖项注入和其他配置。进行启动和配置。
Startup.Configuration的调用要比Application_Start稍晚一些,但是我认为在大多数情况下区别并不重要。
我相信我们将其他代码保留在Global.asax中的主要原因是:
我认为第三个原因是最重要的原因,因为默认情况下我们不采用这种方法,因为某些情况下不包括拥有此DLL,并且能够更改身份验证方法而不会使无关代码的位置无效(例如路线注册)。
但是,如果这些原因都不适合您的情况,那么我认为使用此方法会很好。