Ninject не может связать IRepository <T> - PullRequest
0 голосов
/ 06 июня 2019

У меня проблемы с приложением. Недавно я скачал пакеты Ninject и не могу связать свои сущности.

Мой контроллер:

public class ServerController : ApiController
{
    private readonly IServerService _service;

    public ServerController(IServerService service)
    {
        this._service = service;
    }

RegisterServices:

private static void RegisterServices(IKernel kernel)
    {
        kernel.Bind<IServerService>().To<ServerService>().InSingletonScope();


        kernel.Bind<IRepository<Server>>()
            .To(typeof(ServerRepository))
            .InRequestScope();
    }  

ServerService:

private readonly IRepository<Server> _repository;

    public ServerService(IRepository<Server> repository)
    {
        this._repository = repository;
    }

    public async Task<IEnumerable<Server>> GetAllAsync()
    {
        return await this._repository.GetAllAsync();
    }

Если кому-то понадобится дополнительная информация, я отправлю ее в комментарии.

1 Ответ

0 голосов
/ 07 июня 2019

Проблема была решена. Я просто добавил новые интерфейсы в модель DAL и внедрил IRepository. После этого мой регистр Ninject выглядит так:

        kernel.Bind<IServerService>().To<ServerService>().InSingletonScope();
        kernel.Bind<IServerRepository>().To<ServerRepository>().InSingletonScope();
...