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

ASP.NET中Controller与Service依赖注入失败问题求助

依赖注入错误求助:Unable to resolve service for type while attempting to activate

我在开发Web API,想实现「Controller调用Service、Service调用Repository」的分层架构,但遇到了依赖注入错误,提示“Unable to resolve service for type while attempting to activate”。已经尝试过Stack Overflow上同类型问题的解决方案,但都没解决,请求帮忙定位问题。

错误截图

错误提示

Controller代码

namespace uhem_api.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class TravelPurposeController : ControllerBase
    {
        private readonly ITravelPurposeService _travelPurposeService;

        public TravelPurposeController(ITravelPurposeService travelPurposeService){
            
           _travelPurposeService = travelPurposeService;
 
        }

        [HttpGet]
        public async Task<List<TravelPurposeDto>> GetAll()
        {
            var res = await _travelPurposeService.GetAll();

            return res;
        }

    }
}

Service代码

namespace uhem_api.Services
{
    public class TravelPurposeService : ITravelPurposeService
    {
        // 此处省略具体实现
    }
}

Program.cs配置截图

Program.cs配置

排查方向建议

  • 检查Service的DI注册:确认在Program.cs中已经把ITravelPurposeService和对应的TravelPurposeService注册到容器,比如添加:
    builder.Services.AddScoped<ITravelPurposeService, TravelPurposeService>();
    
    (从截图看Program.cs的配置,大概率存在注册遗漏或方式错误)
  • 检查Service的构造函数依赖:如果TravelPurposeService的构造函数还依赖了Repository等其他服务,必须确保这些依赖也在DI容器中完成注册,否则会因为依赖链断裂导致无法激活。
  • 检查命名空间与程序集引用:确认ITravelPurposeService、TravelPurposeService所在的命名空间已被Program.cs所在项目正确引用,避免因程序集未加载导致DI无法识别类型。
  • 确认接口与实现的匹配性:确保TravelPurposeService完全实现了ITravelPurposeService的所有方法,避免因接口未完全实现引发关联问题。

内容的提问来源于stack exchange,提问作者Tiago Santos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:30:22