Это дублирующий вопрос: Рендеринг необработанного html с реагированием
Обычно Вы не хотите вводить контейнер в свои компоненты приложения.
Посмотрите эти вопросы (этим вопросом является почти дубликат их):
BTW: Вы добираетесь IKernel
инжекция бесплатно, и можно зарегистрироваться IWindsorContainer
:
container.Register(Component.For<IWindsorContainer>().Instance(container));
Обычно как сказанный mausch, думайте дважды перед передачей контейнера компоненту. Вам действительно нужен он, чтобы иметь доступ к контейнеру?
Вытягивать зависимости от контейнерного использования ввело фабрики.
Недавно у меня был соблазн сделать это. Я хотел иметь возможность создавать несколько экземпляров службы в течение жизни объекта. Регистрация фабрики была бы лучше, так как необходимость в зависимости была бы более очевидной. Но создавать фабрику для каждого сервиса казалось мучением.
В итоге я использовал что-то похожее на код из этой статьи: http://mikehadlow.blogspot.com/2010/01/10-advanced-windsor-tricks-1a-delegate.html. Предположим, у вас есть класс, которому нужно создавать экземпляры IService. В статье описывается техника, позволяющая вашему классу иметь зависимость от Func, и вы автоматически получите фабрику, специфичную для этого класса.