DotNET Console Generic Host - Create Project
2022. 9. 5. 00:00ㆍDOTNET/Generic Host
반응형
일반 적인 .net core 관련된 Console app 을 생성하자.
글쓴이는 GenericHost 라는 이름으로 작성하였다.
이제 이 Console app 을 이용하여 Logger 를 활용해 보겠다.
dotnet DI 를 사용하려면 Generic Host 라는 HostBuilder 를 이용해야 한다.
제네릭 호스트는 콘솔 앱과 같은 다른 유형의 .NET 애플리케이션과 함께 사용할 수 있다.
Program.cs 를 다음과 같이 수정하자
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
})
.Build();
host.Run();
Host 에서 alt + shift + f10 을 누르자
아래와 같이 Microsoft.Extensions.Hosting 을 설치 하자 (find and install latest version)
services.AddHostedService<Worker>(); 에서 alt + shift + f10 을 누르자
아래를 추가하자
using Microsoft.Extensions.DependencyInjection;
ctrl + shift + a 를 통해 class 를 추가 하자 이름은 Worker 라고 짓자
Worker.cs
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
public sealed class Worker : IHostedService
{
private readonly ILogger _logger;
public Worker(
ILogger<Worker> logger,
IHostApplicationLifetime appLifetime)
{
_logger = logger;
appLifetime.ApplicationStarted.Register(OnStarted);
appLifetime.ApplicationStopping.Register(OnStopping);
appLifetime.ApplicationStopped.Register(OnStopped);
}
public Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("1. StartAsync has been called.");
return Task.CompletedTask;
}
public Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("4. StopAsync has been called.");
return Task.CompletedTask;
}
private void OnStarted()
{
_logger.LogInformation("2. OnStarted has been called.");
}
private void OnStopping()
{
_logger.LogInformation("3. OnStopping has been called.");
}
private void OnStopped()
{
_logger.LogInformation("5. OnStopped has been called.");
}
}
이제 실행해보자
실행시 위와 같이 출력되면 정상이다.
관련영상
반응형
'DOTNET > Generic Host' 카테고리의 다른 글
DotNET Console Generic Host - Event Driven With MediatR (0) | 2022.09.09 |
---|---|
DotNET Console Generic Host - Logging With Serilog (0) | 2022.09.08 |
DotNET Console Generic Host - Configuration (appsetting.json) (0) | 2022.09.07 |
DotNET Console Generic Host - Dependency Injection with Scrutor (0) | 2022.09.06 |