Application_Start 相当于 ASP.NET 5

Application_Start equivalent in ASP.NET 5

我在 Startup class、ConfigureServicesConfigure 上遇到过两种方法。在应用程序启动时,是否有与以前版本的 asp.net 中的 Application_Start 方法等效的方法来执行任意工作?

编辑

作为后续行动,ASP.NET 5 在 Startup class 上期望的可能方法是什么?

如果我的理解没有错的话,没有这样平等的方法。相反,有两种不同的方法,ConfigureService 和配置。

ConfigureService 是一种为您的项目配置服务的方法。这个方法的目的是为你的项目设置依赖注入。这是调用构造函数后将首先触发的方法。

Configure是一种配置请求管道的方法。此方法将在 ConfigureService 后执行。

您可以参考以下两个链接:

Asp.Net 5 Startup

Asp.Net 5 Startup 2

关于你的最后一个问题,我在 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