Вы не должны передавать ссылки на контейнер вокруг вашего приложения. Не вызывать контейнер;он будет называть вас .
Единственные места, где вам понадобится ссылка на контейнер, - это ваш составной корень (где ваше приложение загружено) и на любой фабрике.реализации.
Castle Windsor поддерживает типизированные фабрики , поэтому даже ваши фабрики могут быть автоматически подключены для использования вашего контейнера.
Обновление
Вы говорите, что у вас есть оболочка, в которой есть ряд вкладок, каждая из которых отображает пользовательский элемент управления.
Если вы используете MVVM, то у вас будут модели и виды представлений, и, по-видимому, каждый из этих элементов UserControls фактически является представлением, которое связано с базовой моделью представления.
Если вы используете первый подход к модели представления (и вам, вероятно, следует), то сервисы, которые требуются модели представления (например, менеджер отчетов, менеджер безопасности и т. Д.), Должны быть внедрены в модель представления через ее конструктор(как абстракция, которая была зарегистрирована для конкретной реализации в контейнере).
В момент, когда вы разрешаете свою модель представления оболочки (в корне композиции), контейнер автоматически внедрит службы, которыеМодель представления оболочки требуется из-за ее поддержки цепочки зависимостей.Эти зависимости оболочки также могут включать модели представлений для каждой из вкладок.
Всякий раз, когда вам нужно создать экземпляр других моделей представлений, модель родительского представления может взять зависимость от фабричного типа, который возвращает экземпляр этого нового представления.модель.Для этих типов фабрики потребуется ссылка на ваш контейнер, но, как я уже упоминал, в случае Castle Windsor (и других контейнеров IoC) предоставляется поддержка для создания фабричных типов, которые неявно разрешаются через контейнер.