Внедрение зависимостей и несколько проектов в решении - PullRequest
1 голос
/ 09 сентября 2011

Я следил за этой статьей, касающейся использования шаблона репозитория и UnitOfWork с платформой сущностей. Я также планирую использовать Ninject в качестве контейнера IOC для предстоящего проекта.

Учитывая пример кода из статьи, класс NorthwindContext в проекте NorthwindData реализует интерфейс IUnitOfWork, который находится внутри проекта NorthwindModel.

Как я могу использовать внедрение зависимостей, чтобы устранить зависимость от NorthwindModel до NorthwindData? Классы репозитория в примере проекта выглядят так, как будто они полагаются на контейнер IOC для внедрения экземпляров NorthindContext, который я понимаю.

Кроме того, мне нужно было бы создать третий проект в решении для размещения вещей DI. Какие-нибудь примеры того, как это настроить?

EDIT:

Полагаю, мой вопрос выше связан с более общим вопросом.

Это плохо, когда два проекта зависят от ссылки на сборку от NWData до NWModel ?? Я предполагал, что DI устранит эту потребность.

1 Ответ

1 голос
/ 09 сентября 2011

Чтобы разорвать зависимость от NorthwindModel до NorthwindData, посмотрите, что нужно репозиториям из NorthwindContext.Вставьте это в интерфейс IDataContext, объявите это в проекте NorthwindModel и дайте NorthwindContext реализовать его.Теперь используйте DI для внедрения NorthwindContext в репозитории, которые теперь зависят только от IDataContext.

Относительно возможного третьего проекта: да, наличие корневого проекта приложения, ответственного только за настройку при запуске , может быть хорошей идеей.Но это зависит от объема.

...