Использование контейнеров IoC; конкретно Виндзор

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

Я читал в контейнеры IoC (в данном случае Windsor), и мне не хватает того, как вы говорите с контейнером из различных частей вашего кода.

Я получаю DI, я уже некоторое время делаю DI для бедных (пустые конструкторы, вызывающие перегруженные конструкторы инъекций с реализациями параметров по умолчанию), и я полностью вижу преимущества контейнера. Тем не менее, я упускаю одну важную информацию; как вы должны ссылаться на контейнер каждый раз, когда вам нужен сервис из него?

Создаю ли я единую глобальную страховку, которую я обхожу? Конечно нет!

Я знаю, я должен назвать это:

WindsorContainer container = new WindsorContainer(new XmlInterpreter());

(например), когда я хочу загрузить свою конфигурацию XML, но что мне делать с контейнером? Создает ли новый контейнер каждый раз после этого сохраненную загруженную конфигурацию через некоторые внутренние статические маджики или иным образом, или мне приходится каждый раз перезагружать конфигурацию (я полагаю, нет, или жизненные циклы не могут работать).

Непонимание этого мешает мне понять, как работают жизненные циклы, и продолжать использовать некоторую удивительность IoC

Спасибо,

Эндрю

Ответы на вопрос(5)

Ваш ответ на вопрос