2010-06-01 5 views
1

Как получить список всех IRegistrations/ComponentRegistrations в моем WindsorContainer или его ядре? Я вижу способ сделать это, проводя связь с событием ComponentRegistered и отслеживая там, но есть ли способ eaiser?Список всех сообщений об ошибках в WindsorContainer/Kernel

Спасибо.

+0

Почему вы хотите перечислить компоненты? –

+0

Чтобы добавить перехватчики к определенным компонентам после факта. – Jeff

+2

Взгляните на IModelInterceptorSelector –

ответ

2

Вы можете получить обработчиков из контейнера, но не IRegistrations:

IHandler[] handlers = container.Kernel.GetAssignableHandlers(typeof(object)); 

Обработчиков являются в основном зарегистрированными компонентами. IHandler.ComponentModel содержит большую часть информации зарегистрированного компонента.

+1

Это даст вам все обработчики для всех сервисов, зарегистрированных в контейнере. Если по какой-то причине вас интересуют компоненты, вам нужно создать набор из свойств 'ComponentModel' обработчика. –

+1

Не могли бы вы пояснить, что вы подразумеваете под «созданием набора из свойств ComponentModel обработчика»? Благодарю. – Jeff

+1

@ jeffn825: 'container.Kernel.GetAssignableHandlers (typeof (object)). Выберите (h => h.ComponentModel)' –