按照这个答案,我想IHostApplicationLifetime在我的类中注入 ,以便在方法StartAsync结束时正确关闭。
但我不知道如何从控制台获取 applicationLifetime 并通过内置的 dotnet core IoC 容器注入它:
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.SetBasePath(Directory.GetCurrentDirectory())
.AddCommandLine(args)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.ConfigureServices((hostContext, services) =>
{
services.Configure<ConnectionStringConfiguration>(hostContext.Configuration.GetSection("ConnectionStrings"));
services.AddTransient<ISmtpClient, MySmtpClient>();
services.AddTransient<IEmailService, EmailService>();
services.AddSingleton<IHostApplicationLifetime>(????); // What should I put here ????
services.AddHostedService<EInvoiceSenderService>();
})
.UseSerilog();
}
Run Code Online (Sandbox Code Playgroud)
谢谢 !
c# dependency-injection ioc-container console-application .net-core