我有以下接口定义:
public interface ICommandHandler
{
ILogger Logger { get; set; }
bool SendAsync { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有多个实现,ICommandHandler需要解决.虽然Castle Windows会自动注入Logger属性,但在ILogger注入时,我无法找到一种方法来配置SendAsync在创建新实例期间Windsor 将属性设置为true.
UPDATE
命令处理程序实现从基接口继承的通用接口:
public interface ICommandHandler<TCommand> : ICommandHandler
where TCommand : Command
{
void Handle(TCommand command);
}
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
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>());
Run Code Online (Sandbox Code Playgroud)
Castle Windsor有什么方法可以做到这一点?