首页 >后端开发 >C++ >为什么我的 .NET Core MVC 应用程序无法注入存储库依赖项?

为什么我的 .NET Core MVC 应用程序无法注入存储库依赖项?

Susan Sarandon
Susan Sarandon原创
2025-01-23 18:09:12719浏览

.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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn