3

我需要自动将我的开放通用接口注册到它的实现类我的接口类似于 IIntegrationEventHandler

public interface IIntegrationEventHandler<in TIntegrationEvent> 
    where TIntegrationEvent : BaseIntegrationEvent
{
    Task HandleAsync(TIntegrationEvent @event);
}

我的处理程序将是这样的

    public class EmployeeEventsHandler : IIntegrationEventHandler<EmployeeUserCreated>
{
    public async Task HandleAsync(EmployeeUserCreated @event)
    {
        throw new NotImplementedException();
    }        
}

Castle Windsor 中是否有任何通用方法可以在不手动对每个处理程序进行注册的情况下进行此类注册,我搜索了很多但没有注意到我没有基本处理程序类,只有通用接口和实现类

4

1 回答 1

3

按惯例注册应该在这里工作:

var container = new WindsorContainer();

container.Register(
    Classes.FromAssemblyNamed("YourHandlersAssemblyName")
    .BasedOn(typeof(IIntegrationEventHandler<>))
    .WithServiceFirstInterface());

var handler = container.Resolve<IIntegrationEventHandler<EmployeeUserCreated>>();
于 2018-04-17T09:28:18.430 回答