как добавить область, если я использую IService в контроллере и подключаю Iservice по порядку как IService-> Service-> IRepository-> Repository - PullRequest
0 голосов
/ 17 апреля 2020

Это ApiController, который я хочу использовать для получения этих данных.

[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
    private readonly IRegionService _service;
    public TestController(IRegionService service)
    {
        _service = service;
    }

    [HttpGet]
    public IEnumerable<RegionModel> Get()
    {
        return _service.GetAll();
    }

    [HttpGet, Route("api/region/getAll")]
    public IEnumerable<RegionModel> GetAll()
    {
        return _service.GetAll();
    }
}

Теперь Чтобы получить эти данные, я go выполнил шаги, описанные в заголовке.

IService->Service->IRepository->Repository

С Respository Я получаю данные, используя LLBLGen. Как мне установить область для использования этого репозитория в проекте? Я также использую AutoMapper и создал Automapper.cs.

Я добавил к Automapper.cs, как показано ниже

CreateMap<IRegionService, RegionService>();
CreateMap<IRegionRepository, RegionRepository>();

и получил эту ошибку.

Не удалось разрешить службу для типа .Services.IRegionService при попытке активировать .ApiController.TestController.

1 Ответ

1 голос
/ 18 апреля 2020

AutoMapper - это инструмент для отображения, а не для DI .

Вы должны зарегистрировать IRegionService и IRegionRepository в DI в классе запуска, например это

public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<IRegionService, RegionService>();
    services.AddScoped<IRegionRepository, RegionRepository>();
}
...