Windsor does not try to support every scenario and every capability out of the box. Instead it exposes a rich set of extension points that you can plug your own logic into to extend or modify how Windsor behaves:
- SubSystems - innermost of Windsor's extension points. Very rarely extended/swapped.
- Facilities - primary extension point. They usually encompass one or more of extension points listed below.
- ComponentModel construction contributors - inspect or modify ComponentModel.
- Handler Selectors - custom logic overriding how components are selected. Often used in multi tenant applications.
- Model Interceptors Selectors - custom logic dynamically selecting interceptors for given component.
- Lazy Component Loaders - just in time component registration. Especially targeted at pulling component information from other frameworks, like MEF or WCF or resolving un-pre-registered concrete types.
- Lifecycle concerns - execute logic when component instance gets created / decommissioned.
- Lifestyle managers - control when object instances should be created / reused and when to end their lifetime.
- Component Activators - control how components are instantiated.
- Release Policy - handle tracking and releasing of components.
- Resolvers - override component resolution logic
- Container Events - notify of events in the container
- MORE