Зачем использовать IKernel поверх IWindsorContainer? - PullRequest
14 голосов
/ 23 июля 2011

Я видел в нескольких примерах кода, где люди использовали IKernel вместо использования IWindsorContainer. Почему это?

Вот один пример: http://docs.castleproject.org/(S(kwaa14uzdj55gv55dzgf0vui))/Windsor.Windsor-tutorial-part-two-plugging-Windsor-in.ashx

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

Container.Kernel.Resolver.AddSubResolver(
        new CollectionResolver(Container.Kernel, true));

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

1 Ответ

19 голосов
/ 23 июля 2011

Для этого есть исторические причины. Изначально проект Castle имел два контейнера: MicroKernel (IKernel), который предоставлял все базовые функции и точки расширения, и Windsor IWindsorContainer, который представлял собой оболочку вокруг MicroKernel, предоставляющую дополнительные функции (например, конфигурацию XML, прокси-серверы и т. Д.), И обертывал MicroKernel .

Они были позже (в v2.5) объединены в один проект / сборку, но во избежание нарушения существующих пользователей различие сохранено.

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