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

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

Susan Sarandon
发布: 2025-01-23 18:09:12
原创
787 人浏览过

.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 已在启动类中注册:

services.AddScoped<IBloggerRepository, BloggerRepository>();
登录后复制

解决方法

问题在于控制器类直接请求具体的 BloggerRepository 类。然而,依赖注入容器只知道如何创建 IBloggerRepository 接口的实例。要解决此错误,应将控制器调整为接受接口:

public BlogController(IBloggerRepository repository)
{
    _repository = repository;
}
登录后复制

其他说明

对于外部 NuGet 包,务必查阅其文档,因为它们可能有特定的注册要求。例如,要解决关于 IHttpContextAccessor 的错误消息:

<code>Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' ...</code>
登录后复制

解决方案是使用自定义扩展方法:

services.AddHttpContextAccessor();
登录后复制

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

以上是为什么我的 .NET Core MVC 应用程序无法注入存储库依赖项?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板