Inyectando una propiedad primitiva en una clase base con Castle Windsor
Tengo la siguiente definición de interfaz:
public interface ICommandHandler
{
ILogger Logger { get; set; }
bool SendAsync { get; set; }
}
Tengo múltiples implementaciones que implementanICommandHandler
y necesita ser resuelto. Mientras Castle Windows inyecta automáticamente laLogger
propiedad, cuando unILogger
se inyecta, no puedo encontrar una manera de configurar elSendAsync
propiedad que Windsor establecerá en verdadero durante la creación de nuevas instancias.
ACTUALIZA
Los controladores de comandos implementan una interfaz genérica que hereda de la interfaz base:
public interface ICommandHandler<TCommand> : ICommandHandler
where TCommand : Command
{
void Handle(TCommand command);
}
Aquí está mi configuración:
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>());
¿De qué maneras hay para hacer esto con Castle Windsor?