相关疑难解决方法(0)

使用Castle Windsor在基类中注入原始属性

我有以下接口定义:

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有什么方法可以做到这一点?

.net c# dependency-injection castle-windsor ioc-container

3
推荐指数
1
解决办法
2266
查看次数