Ninject + Bind универсальный репозиторий

Я пытаюсь привязать универсальный интерфейс IRepository<> к своему универсальному репозиторию <> - однако он всегда возвращает нуль?

Я пробовал разные вещи, такие как:

Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>)); 
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 

Однако, если я передам не универсальный интерфейс и класс, то это будет работать как сон?

2 ответа

Решение
Bind(typeof(IRepository<>)).To(typeof(Repository<>));

Это правильный синтаксис для связывания открытого дженерика.

Если вы получаете ноль назад при запросе IRepository< of whatever >, тогда может быть какая-то другая проблема в области кода, которой вы не поделились.

Смотрите мой ответ на MVC3 Конструктор контроллера + Ninject.

Общее связывание работает правильно в Ninject. Попробуйте использовать конструктор без параметров в репозитории. Я думаю, что проблема есть.

Другие вопросы по тегам