컨트롤러에 리포지토리 종속성을 삽입하는 동안 .NET Core MVC 앱에서 오류가 발생했습니다. 오류 메시지는 다음과 같습니다.
<code>InvalidOperationException: Unable to resolve service for type 'WebApplication1.Data.BloggerRepository' while attempting to activate 'WebApplication1.Controllers.BlogController'.</code>
이 오류는 애플리케이션이 BloggerRepository
생성자에 전달할 BlogController
클래스의 인스턴스를 생성할 수 없음을 나타냅니다. BloggerRepository
이 스타트업 클래스에 등록되어 있지만:
<code class="language-csharp">services.AddScoped<IBloggerRepository, BloggerRepository>();</code>
문제는 컨트롤러 클래스가 구체적인 BloggerRepository
클래스를 직접 요청한다는 것입니다. 그러나 종속성 주입 컨테이너는 IBloggerRepository
인터페이스의 인스턴스를 생성하는 방법만 알고 있습니다. 이 오류를 해결하려면 인터페이스를 수용하도록 컨트롤러를 조정해야 합니다.
<code class="language-csharp">public BlogController(IBloggerRepository repository) { _repository = repository; }</code>
외부 NuGet 패키지의 경우 특정 등록 요구 사항이 있을 수 있으므로 해당 설명서를 확인하세요. 예를 들어 IHttpContextAccessor
에 대한 오류 메시지를 해결하려면:
<code>Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' ...</code>
해결책은 사용자 정의 확장 방법을 사용하는 것입니다.
<code class="language-csharp">services.AddHttpContextAccessor();</code>
위 내용은 내 .NET Core MVC 애플리케이션이 리포지토리 종속성을 주입하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!