У меня есть следующее определение интерфейса:
public interface ICommandHandler
{
ILogger Logger { get; set; }
bool SendAsync { get; set; }
}
У меня есть несколько реализаций, которые реализуют ICommandHandler
и должны быть решены. В то время как Castle Windows автоматически внедряет свойство Logger
, когда ILogger
вводится, я не могу найти способ настроить свойство SendAsync
таким образом, чтобы Windsor установило для него значение true при создании новых экземпляров.
UPDATE
Обработчики команд реализуют общий интерфейс, который наследуется от базового интерфейса:
public interface ICommandHandler<TCommand> : ICommandHandler
where TCommand : Command
{
void Handle(TCommand command);
}
Вот моя конфигурация:
var container = new WindsorContainer();
container.Register(Component
.For<ICommandHandler<CustomerMovedCommand>>()
.ImplementedBy<CustomerMovedHandler>());
container.Register(Component
.For<ICommandHandler<ProcessOrderCommand>>()
.ImplementedBy<ProcessOrderHandler>());
container.Register(Component
.For<ICommandHandler<CustomerLeftCommand>>()
.ImplementedBy<CustomerLeftHandler>());
Как можно это сделать с Виндзорским замком?