gpt4 book ai didi

c# - 如果我使用 OWIN Startup.cs 类并将所有配置移到那里,我是否需要 Global.asax.cs 文件?

转载 作者:IT王子 更新时间:2023-10-29 03:30:04 25 4
gpt4 key购买 nike

例如,假设在一个全新的 ASP.NET MVC 5 应用程序中,如果我删除 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 类中配置的部分时,我不会在两个不同的类中进行依赖注入(inject)和其他配置这似乎与启动和配置有关。

最佳答案

Startup.Configuration 的调用稍晚于 Application_Start,但我认为在大多数情况下差异不会太大。

我认为我们将其他代码保留在 Global.asax 中的主要原因是:

  1. 与以前版本的 MVC 保持一致。 (这是目前每个人都希望找到此代码的地方。)
  2. 能够添加其他事件处理程序。在 Global.asax 中,您可以处理其他方法,例如 Session_Start 和 Application_Error。
  3. 在各种身份验证场景中的正确性。只有当您的 bin 目录中有 Microsoft.Owin.Host.SystemWeb.dll 时,才会调用 Startup.Configuration 方法。如果您删除此 DLL,它会自动停止调用 Startup.Configuration,这可能很难理解。

我认为第三个原因是我们没有默认采用这种方法的最重要原因,因为某些场景不包括拥有此 DLL,并且能够更改身份验证方法而不会使不相关的位置无效是很好的放置代码(如路线注册)。

但如果这些原因都不适用于您的场景,我认为您可以使用这种方法。

关于c# - 如果我使用 OWIN Startup.cs 类并将所有配置移到那里,我是否需要 Global.asax.cs 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20168978/

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