Универсальный репозиторий Ninject + Bind
Я пытаюсь привязать общий интерфейс IRepository < > к моему универсальному репозиторию < > - однако он всегда возвращает null?
Я пробовал разные вещи вроде:
Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>));
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
Однако, если я перехожу в не общий интерфейс и класс, тогда он работает как сон?
Ответы
Ответ 1
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
Это правильный синтаксис для привязки открытого общего.
Если вы возвращаете null обратно при запросе IRepository < of whatever > , тогда может возникнуть какая-то другая проблема в области кода, который вы не использовали.
Ответ 2
См. мой ответ на конструктор MVC3 Controller + Ninject.
Общее связывание работает правильно в Ninject. Попробуйте использовать конструктор без параметров в репозитории. Я думаю, проблема там.