Class MinimalConsoleHostedService
- Namespace
- Codebelt.Bootstrapper.Console
- Assembly
- Codebelt.Bootstrapper.Console.dll
Provides a console application that is managed by its host.
public class MinimalConsoleHostedService : IHostedService
- Inheritance
-
MinimalConsoleHostedService
- Implements
Examples
The following example shows how MinimalConsoleHostedService is registered by UseMinimalConsoleProgram on a HostApplicationBuilder. When the host starts, the service subscribes to IHostLifetimeEvents.OnApplicationStartedCallback, runs the MinimalConsoleProgram.RunAsync task, and then calls IHostApplicationLifetime.StopApplication to begin a graceful shutdown. The example resolves the hosted service from the host's service collection to confirm the registration.
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Codebelt.Bootstrapper.Console;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace MinimalConsoleHostedServiceDemo;
public class MyProgram : MinimalConsoleProgram
{
public override Task RunAsync(IServiceProvider serviceProvider, CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
public static class Program
{
public static void Main()
{
var builder = Host.CreateApplicationBuilder();
builder.UseBootstrapperProgram(typeof(MyProgram));
builder.UseMinimalConsoleProgram();
using var host = builder.Build();
var hosted = host.Services.GetServices<IHostedService>().OfType<MinimalConsoleHostedService>().Single();
}
}
Constructors
MinimalConsoleHostedService(IProgramFactory, IHostApplicationLifetime, IServiceProvider, IHostLifetimeEvents)
Initializes a new instance of the MinimalConsoleHostedService class.
public MinimalConsoleHostedService(IProgramFactory factory, IHostApplicationLifetime applicationLifetime, IServiceProvider provider, IHostLifetimeEvents events)
Parameters
factoryIProgramFactoryThe dependency injected IProgramFactory.
applicationLifetimeIHostApplicationLifetimeThe dependency injected IHostApplicationLifetime.
providerIServiceProviderThe dependency injected IServiceProvider.
eventsIHostLifetimeEventsThe dependency injected IHostLifetimeEvents.
Methods
StartAsync(CancellationToken)
Triggered when the application host is ready to start the service.
public Task StartAsync(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationTokenIndicates that the start process has been aborted.
Returns
StopAsync(CancellationToken)
Triggered when the application host is performing a graceful shutdown.
public Task StopAsync(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationTokenIndicates that the shutdown process should no longer be graceful.