Вопрос по c# – Что лучше всего делать при создании экземпляра контейнера Castle Windsor в библиотеке классов? [Дубликат]

4

This question already has an answer here:

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

Должен ли я просто сделать это в конструкторе класса, который я использую, или есть единственная точка входа для сборок, о которых я не знаю?

Благодарю.

Спасибо, ребята, отличная обратная связь, то, что вы упомянули, имеет большой смысл, я даже не помню, почему я опубликовал этот вопрос; D shenku

Ваш Ответ

2   ответа
6

Я могу сказать, что вы не должны использовать контейнер непосредственно в вашей библиотеке классов. Ваша библиотека классов должна иметь зависимости между классами внутри библиотеки. Приложение (Front-End / root графа приложений) будет использовать контейнер для разрешения всех зависимостей, в том числе и в вашей библиотеке классов. ИМХО используяIoC внутри библиотеки классов пахнет как ServiceLocator.

7

Конфигурация внедренного графа объекта полностью зависит от потребностей приложения, которое фактически использует его. Смысл использования контейнера в том, чтобы иметь возможность настраивать зависимости во время выполнения - библиотека ничего не знает о том, как он будет использоваться.

Библиотечные классы должны быть написаны таким образом, чтобы вы могли использовать любой контейнер, который вам нравится, или инъекцию зависимости от бедного человека, по усмотрению потребителя. Привязка библиотеки к контейнеру - это запах.

Похожие вопросы