Может ли Виндзор сотрудничать с другим контейнером IoC? - PullRequest
6 голосов
/ 13 мая 2011

В основе нашего приложения мы используем Castle Windsor для управления нашими зависимостями. Мы будем загружать плагины от третьих лиц, которые могут использовать свои собственные контейнеры IoC. Мы бы хотели, чтобы они могли получать зависимости от ядра, например, посредством внедрения в конструктор служб ядра, но также получения зависимостей от собственного контейнера IoC.

Похоже, что если бы они предоставили интерфейс поставщика услуг, Windsor мог бы использовать его для разрешения неизвестных зависимостей, игнорируя результаты (поскольку время жизни этих компонентов является чьим-то делом), и продолжал перевозку.

Но я также уверен, что есть некоторые тонкости, которые возникают при попытке сделать что-то подобное.

1 Ответ

6 голосов
/ 13 мая 2011

Это не обязательно. Если вы разрешите этим плагинам использовать Constructor Injection для получения соответствующих сервисов из вашего хост-приложения, Castle Windsor сможет правильно подключить плагин. Плагины просто используют Constructor Injection как способ для статического объявления зависимости , поэтому, пока Виндзор может разрешить зависимость, подключаемый модуль будет получать ее.

То, что происходит внутри каждого подключаемого модуля (включая использование других контейнеров), не относится к хост-приложению.

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