You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1多层依赖注入问题:无法解析服务实例求助

问题解决方法

核心原因

你遇到的错误是因为ASP.NET Core的依赖注入容器中没有注册IUsuariosService接口与它的实现类UsuariosService的映射关系,容器无法找到该接口对应的实例来注入到控制器中。

具体修复步骤

1. 注册服务层接口与实现

在Startup.cs的ConfigureServices方法中,添加IUsuariosService的注册代码,和仓储的注册放在一起:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddControllers();
    services.AddScoped<IUsuariosRepo, UsuariosRepo>();
    // 添加这行代码,注册服务层的接口与实现
    services.AddScoped<IUsuariosService, UsuariosService>();
    ...
}

2. 优化服务层的依赖注入(可选但推荐)

当前UsuariosService的构造函数直接依赖具体的UsuariosRepo类,不符合依赖倒置原则,建议改为依赖IUsuariosRepo接口,这样后续更换仓储实现时无需修改服务层代码:

修改UsuariosService的代码:

namespace Application.Services
{
    public class UsuariosService : IUsuariosService
    {
        // 将具体类改为接口
        private readonly IUsuariosRepo _repository;
        
        // 构造函数参数改为接口
        public UsuariosService(IUsuariosRepo repository) {
            _repository = repository;
        }
        
        // 其余代码保持不变...
    }
}

验证修复

完成上述修改后,重新启动项目,发起GET /api/usuarios请求,错误即可解决。

内容的提问来源于stack exchange,提问作者Paulo Vitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:45:29