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配置截图

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

