ConfigureServices
ASP.NET Core에서 종속성 주입 컨테이너를 구성하는 데 사용되는 ConfigureServices
메서드는 서비스를 확인하는 직접적인 방법을 제공하지 않습니다. 이 방법으로 서비스를 수동으로 해결하려면 대체 접근 방식이 필요합니다.
서비스 제공자 패턴
서비스를 확인하기 위해 ASP.NET Core는 서비스 공급자 패턴을 사용합니다. 서비스 컬렉션이 구축되면 IServiceProvider
인스턴스로 변환되어 서비스를 확인할 수 있습니다.
인젝션 서비스 제공자
서비스를 해결하는 한 가지 방법은 IServiceProvider
클래스의 생성자에 Startup
인스턴스를 삽입하는 것입니다. 그러나 이 방법은 호스팅 계층에서 삽입한 제한된 필수 서비스에만 액세스를 제공합니다.
ApplicationService 사용
Configure
메서드에서 IApplicationBuilder
는 등록된 모든 서비스에 액세스할 수 있는 서비스 공급자가 포함된 ApplicationServices
속성을 제공합니다.
<code class="language-csharp">public void Configure(IApplicationBuilder app) { var serviceProvider = app.ApplicationServices; var fooService = serviceProvider.GetService<IFooService>(); }</code>
중간 서비스 제공업체 구축
ConfigureServices
메서드에서 서비스를 해결하기 위해 부분적으로 구축된 서비스 모음에서 중간 서비스 공급자를 구축할 수 있습니다. 다만, 이는 해당 시점 이전에 등록된 서비스만 포함합니다.
<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { services.AddSingleton<IFooService, FooService>(); var sp = services.BuildServiceProvider(); var fooService = sp.GetService<IFooService>(); }</code>
수동 구문 분석 방지
수동으로 서비스를 해결하는 것은 종속성 주입 원칙을 위반하므로 일반적으로 권장되지 않습니다. 대신 Configure
메서드에서 주입을 사용하거나 서비스 제공자 주입을 활용하세요.
위 내용은 `ConfigureServices`에서 ASP.NET Core 서비스를 수동으로 해결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!