Пользователь
Может я не до конца понял проблему автора, но вот например что Castle.Windsor умеет:
public class Installer : IWindsorInstaller { public void Install(IWindsorContainer container, IConfigurationStore store) { container.Register( // register loggers, FileLogger is default Component.For<ILogger>().ImplementedBy<FileLogger>().IsDefault(), Component.For<ILogger>().ImplementedBy<RabbitMqLogger>(), Component.For<ILogger>().ImplementedBy<PostgreSqlLogger>(), // register controllers // first 3 controllers uses default logger Component.For<Controller1>(), Component.For<Controller2>(), Component.For<Controller3>(), // specify logger implementation for some controllers Component.For<Controller4>().DependsOn(Dependency.OnComponent<ILogger, RabbitMqLogger>()), Component.For<Controller5>().DependsOn(Dependency.OnComponent<ILogger, PostgreSqlLogger>()) ); } }
Все контроллеры имеют зависимость типа ILogger. 4 и 5 контроллеру в момент регистрации говорим какой логгер будет для них резолвится.
Я не адепт Castle.Windsor, но пользуюсь им уже достаточно давно и могу сказать, что в плане кастомизации он очень хорош.
Может я не до конца понял проблему автора, но вот например что Castle.Windsor умеет:
Все контроллеры имеют зависимость типа ILogger. 4 и 5 контроллеру в момент регистрации говорим какой логгер будет для них резолвится.
Я не адепт Castle.Windsor, но пользуюсь им уже достаточно давно и могу сказать, что в плане кастомизации он очень хорош.