HostedService를 종속성주입을 통해 가져올 수 있나요?

IHostedService를 상속받은 서비스를 다른 HostedService 에서 종속성 주입을 통해 가져오려고합니다.
아래와 같이 코드를 작성하면 SecondService 에서 FirstService 를 종속성주입을 통해 가져오려고 하면 예외가 발생합니다.

.ConfigureServices((hostContext, services) => {
		services.AddHostedService<FirstService>();
		services.AddHostedService<SecondService>();
}

구글링을 통해 찾은 방법을 사용하면 아래처럼 살짝? 복잡한 방법을 사용해야하는데 AddHostedService 를 통해 등록한 서비스도 싱글턴으로 생성되지만 왜 종속성 주입으로는 가져올 수 없는지 궁금합니다.

.ConfigureServices((hostContext, services) => {
		services.AddSingleton<FirstService>();
		services.AddHostedService(p => p.GetRequiredService<FirstService>());
}
1개의 좋아요

호스팅된 서비스는 종속성 주입의 대상이 아니기 때문입니다.

그러므로 필요로 할 경우 찾으신 코드가 가장 이상적인 코드라고 할 수 있겠습니다.

2개의 좋아요