Рассматривали ли вы использовать Binsor для настройки вашего контейнера? Вместо многословного и неуклюжего XML вы можете настроить Windsor с помощью DSL на основе Boo. Вот как будет выглядеть ваш конфиг:
component IMyComponent, MyComponent:
start_at = 1
Преимущество заключается в том, что у вас есть гибкий конфигурационный файл, но вы избежите проблем с XML. Также вам не нужно перекомпилировать, чтобы изменить конфигурацию, как если бы вы сконфигурировали контейнер в коде.
Существует также множество вспомогательных методов, которые позволяют конфигурировать с нулевым трением:
for type in Assembly.Load("MyApp").GetTypes():
continue unless type.NameSpace == "MyApp.Services"
continue if type.IsInterface or type.IsAbstract or type.GetInterfaces().Length == 0
component type.GetInterfaces()[0], type
С ним можно начать здесь .