Обновить
0

Пользователь

Отправить сообщение

Может я не до конца понял проблему автора, но вот например что 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, но пользуюсь им уже достаточно давно и могу сказать, что в плане кастомизации он очень хорош.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность