Application_Start 相当于 ASP.NET 5
Application_Start equivalent in ASP.NET 5
我在 Startup class、ConfigureServices
和 Configure
上遇到过两种方法。在应用程序启动时,是否有与以前版本的 asp.net 中的 Application_Start
方法等效的方法来执行任意工作?
编辑
作为后续行动,ASP.NET 5 在 Startup class 上期望的可能方法是什么?
如果我的理解没有错的话,没有这样平等的方法。相反,有两种不同的方法,ConfigureService
和配置。
ConfigureService
是一种为您的项目配置服务的方法。这个方法的目的是为你的项目设置依赖注入。这是调用构造函数后将首先触发的方法。
Configure
是一种配置请求管道的方法。此方法将在 ConfigureService
后执行。
您可以参考以下两个链接:
关于你的最后一个问题,我在 Startup.cs class 在线任何地方都没有找到任何其他方法文档或声明。
正如Simple Man所说,ASP.NET5中没有直接等价的方法;类似的功能应该在适当的时候由您的服务启动,以符合单一职责原则。 (最接近的是 Configure
方法,您可能应该 "start" 任何需要 "started" 的服务。)但是,在 Startup class:构造函数。一些逻辑,例如加载配置文件,可能在那里是合适的。
您可以在 the Hosting repository. 中查看这些方法如何位于 Startup class 上,仅使用您提到的两个方法和 Startup 构造函数。
您可以在 .NET Core 2.0 上使用 IHostedService 接口。
IHostedService 后台任务执行与您注册 class 的 application.When 的生命周期协调,您可以在应用程序的启动和停止阶段做任何您想做的事情,例如使用 Application_Start 和 Application_End.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHostedService, MyBackgroundStartupTask>();
}
自 .NET Core 2.1 以来还有另一个选项可用。我们可以从中派生的抽象基础 class,命名为 BackgroundService
我在 Startup class、ConfigureServices
和 Configure
上遇到过两种方法。在应用程序启动时,是否有与以前版本的 asp.net 中的 Application_Start
方法等效的方法来执行任意工作?
编辑
作为后续行动,ASP.NET 5 在 Startup class 上期望的可能方法是什么?
如果我的理解没有错的话,没有这样平等的方法。相反,有两种不同的方法,ConfigureService
和配置。
ConfigureService
是一种为您的项目配置服务的方法。这个方法的目的是为你的项目设置依赖注入。这是调用构造函数后将首先触发的方法。
Configure
是一种配置请求管道的方法。此方法将在 ConfigureService
后执行。
您可以参考以下两个链接:
关于你的最后一个问题,我在 Startup.cs class 在线任何地方都没有找到任何其他方法文档或声明。
正如Simple Man所说,ASP.NET5中没有直接等价的方法;类似的功能应该在适当的时候由您的服务启动,以符合单一职责原则。 (最接近的是 Configure
方法,您可能应该 "start" 任何需要 "started" 的服务。)但是,在 Startup class:构造函数。一些逻辑,例如加载配置文件,可能在那里是合适的。
您可以在 the Hosting repository. 中查看这些方法如何位于 Startup class 上,仅使用您提到的两个方法和 Startup 构造函数。
您可以在 .NET Core 2.0 上使用 IHostedService 接口。
IHostedService 后台任务执行与您注册 class 的 application.When 的生命周期协调,您可以在应用程序的启动和停止阶段做任何您想做的事情,例如使用 Application_Start 和 Application_End.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHostedService, MyBackgroundStartupTask>();
}
自 .NET Core 2.1 以来还有另一个选项可用。我们可以从中派生的抽象基础 class,命名为 BackgroundService