Управление экземплярами с помощью внедрения зависимостей (DI) - PullRequest
0 голосов
/ 22 апреля 2010

Я пытаюсь понять, как именно работает DI. В настоящее время я использую Windsor в качестве DI-контейнера. Я использую это для динамической загрузки моих сервисов в коде без прямой ссылки. Но я изменил поведение и хочу узнать немного больше об экземпляре mgmt, использующем DI.

У меня есть проект веб-приложения, вот служба WCF, использующая PerCall в качестве экземпляра. Это значит, новый экземпляр / вызов. В этом WCF я вызываю службу (загруженную через DI), а эта служба вызывает другую службу (снова загружаемую через DI). WCF - это новый экземпляр в домене приложения, но как насчет сервисов. Они тоже новые экземпляры? Этот контейнер DI совместно используется всеми экземплярами WCF, и службы в этом контейнере также являются единичными экземплярами?

Может кто-нибудь уточнить?

1 Ответ

1 голос
/ 22 апреля 2010

Трудно ответить, когда ваше описание настолько расплывчато. Хотя несколько баллов:

  • Компоненты не должны '' совместно использовать '' контейнер. Компоненты не должны иметь ссылки на контейнер.

  • Иметь один экземпляр корневого контейнера для всего вашего приложения. В webapp вы обычно создаете и настраиваете его в ApplicationStart и позволяете ему выполнять свою работу оттуда.

  • Будьте осторожны, чтобы не зависеть от более коротких компонентов жизни. Например, одноэлементные компоненты не должны зависеть от переходных компонентов.

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