Saltar al contenido

¿Cómo detener / salir / terminar la aplicación de consola de HostBuilder de dotnet core programáticamente?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *