> 백엔드 개발 > C++ > 내 .NET Core MVC 애플리케이션이 리포지토리 종속성을 주입하지 못하는 이유는 무엇입니까?

내 .NET Core MVC 애플리케이션이 리포지토리 종속성을 주입하지 못하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-23 18:09:12
원래의
719명이 탐색했습니다.

.NET Core MVC 앱 종속성 주입 오류: 인터페이스에 대한 종속성을 확인할 수 없습니다

문제 설명

컨트롤러에 리포지토리 종속성을 삽입하는 동안 .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>
로그인 후 복사

Why Does My .NET Core MVC Application Fail to Inject a Repository Dependency?

위 내용은 내 .NET Core MVC 애플리케이션이 리포지토리 종속성을 주입하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿