获取异常:InvalidOperationException:无法解析 Booking.Repositories.DriverRepository 类型的服务

use*_*456 0 c# dependency-injection asp.net-core

我知道我需要DriverRepository在使用该服务之前注册该服务。

这是我所做的:

builder.Services.AddScoped<IDriverRepository, DriverRepository>();
Run Code Online (Sandbox Code Playgroud)

现在在我的DriverAccountsModel课堂上:

public class DriverAccountsModel : PageModel
{
    public IHttpContextAccessor HttpContextAccessor { get; }
    public IDriverRepository DriverRepository { get; }

    public DriverAccountsModel(IHttpContextAccessor 
        httpContextAccessor,
        DriverRepository 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

Yon*_*hun 5

构造函数应该检索IDriverRepository(接口)服务,而不是DriverRepository(类)。

public DriverAccountsModel(
    IHttpContextAccessor httpContextAccessor,
    IDriverRepository driverRepository)
{
    HttpContextAccessor = httpContextAccessor;
    DriverRepository = driverRepository;
}
Run Code Online (Sandbox Code Playgroud)