在 Startup 的 Configure 方法中注入 cancellation-token

Inject cancellation-token to the Configure Method in Startup

是否可以在.net core 中向启动时的配置方法注入取消令牌?当应用程序被取消时它会被调用吗?

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceScopeFactory scopeFactory, ILogger<Startup> logger, CancellationToken ct)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    _foo = app.ApplicationServices.GetService<foo>();
    app._foo.load(ct);

    ...
}

你应该从 ApplicationServices 得到 IHostApplicationLifetime 并使用 ApplicationStopping.

var hostApplicationLifetime = app.ApplicationServices.GetService<IHostApplicationLifetime>();

_foo = app.ApplicationServices.GetService<foo>();
app._foo.load(hostApplicationLifetime.ApplicationStopping);