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. Попробуйте использовать конструктор без параметров в репозитории. Я думаю, что проблема есть.