views:

22

answers:

1

How do I get a list of all IRegistrations/ComponentRegistrations in my WindsorContainer or its kernel? I can see a way of doing this by wiring to the ComponentRegistered event and tracking there, but is there an eaiser way?

Thanks.

+1  A: 

You can get the handlers from the container, but not the IRegistrations:

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

Handlers are basically the registered components. IHandler.ComponentModel contains most of the information of a registered component.

Mauricio Scheffer
This will give you all handlers for all services registered in the container. If for some reason you are interested in components you have to create a set out of handler's `ComponentModel` properties.
Krzysztof Koźmic
Could you clarify what you mean by "create a set out of handler's ComponentModel properties."? Thanks.
JeffN825
@jeffn825: `container.Kernel.GetAssignableHandlers(typeof(object)).Select(h => h.ComponentModel)`
Mauricio Scheffer

related questions