Каков лучший дизайн для этой проблемы с IoC и Циркулярным справочником - PullRequest
4 голосов
/ 12 апреля 2011

Я попытаюсь объяснить простым способом.

У меня есть решение (c # 4.0), которое содержит 4 проекта

  • Framework
  • DAL
  • Домен
  • WebApplication

Итак, мой вопрос:

Framework - это подходящее место для настройки моего Unity IoC?Я хочу настроить через код, а не через xml, поэтому Framework должен знать ссылку на DAL, но DAL уже знает Framework.

Все мои проекты будут знать Framework, поэтому где я настраиваю свой IoC?

1 Ответ

4 голосов
/ 12 апреля 2011

Приложения должны быть настроены в Composition Root , который находится как можно ближе к точке входа. В вашем случае это будет WebApplication. Это единственный проект , который должен иметь ссылку на Unity . Ни в одном из других проектов вообще не должно быть ссылок на Unity.

В корне композиции вы должны следовать шаблону Register Resolve Release .

См. Также этот ответ - он говорит о Ninject вместо Unity, но концепция (и, следовательно, ответ) одинакова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...