Solución:
Puedes usar IHostApplicationLifetime
para detener la ejecución de su aplicación, puede acceder a ella desde el constructor y llamar StopApplication()
método.
IHostApplicationLifetime _lifeTime;
public MyClass(IHostApplicationLifetime lifeTime)
{
_lifeTime = lifeTime;
}
luego StopApplication ()
public void Exit()
{
_lifeTime.StopApplication();
}
Editado usar IHostApplicationLifetime
como IApplicationLifetime
está desaprobado.
Aunque esté utilizando HostBuilder para registrar todas las dependencias en su aplicación, no es necesario que utilice IHost para ejecutar una aplicación de línea cmd. Puede ejecutar su aplicación mediante la creación de un alcance de servicio como este
HostBuilder hostbuilder = new HostBuilder();
builder.ConfigureServices(ConfigureServices); //Configure all services for your application here
IHost host = hostbuilder .Build();
using (var scope = host.Services.CreateScope())
{
var myAppService = scope.ServiceProvider.GetService(typeof(IMyAppServiceToRun)) as IMyAppServiceToRun; //Use IHost DI container to obtain instance of service to run & resolve all dependencies
await myAppService.StartAsync(CancellationToken.None); // Execute your task here
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)