遇到InvalidOperationException:无法解析DriverRepository服务的问题求助
异常排查:InvalidOperationException 无法解析DriverRepository服务
问题原因
你注册服务时使用的是接口与实现类的映射:
builder.Services.AddScoped<IDriverRepository, DriverRepository>();
这意味着依赖注入(DI)容器仅注册了IDriverRepository接口的服务,并未直接注册DriverRepository具体类。但你的DriverAccountsModel构造函数中,直接请求注入具体类DriverRepository,DI容器找不到对应的服务注册,因此抛出InvalidOperationException。
修复方案
修改DriverAccountsModel的构造函数,将注入参数改为IDriverRepository接口类型:
public class DriverAccountsModel : PageModel { public IHttpContextAccessor HttpContextAccessor { get; } public IDriverRepository DriverRepository { get; } // 将构造函数参数改为接口类型 public DriverAccountsModel(IHttpContextAccessor httpContextAccessor, IDriverRepository driverRepository) { HttpContextAccessor = httpContextAccessor; DriverRepository = driverRepository; } public List<DriverAccounts> results; public IActionResult OnGet() { var results = DriverRepository.GetAll(); return Redirect("DriverAccounts"); } public IActionResult OnPost(int id, Models.DriverAccounts driverAccounts) { return Redirect("DriverAccounts"); } }
额外验证
确认DriverRepository类已正确实现IDriverRepository接口的所有成员,避免因接口未实现导致的其他注入问题。
内容的提问来源于stack exchange,提问作者user123456
相关产品推荐
相关产品推荐

