Autofac:开放式泛型类型批量注册

问题描述 投票:14回答:2

我有一个组件,实现IHandler<TCommand>,如下面的许多具体类型:

public class MoveCustomerHandler : IHandler<MoveCustomerCommand>
{
    void IHandler<MoveCustomerCommand>.Handle(MoveCustomerCommand c)
    {
        // some business logic for moving a customer.
    }
}

目前,我注册逐一如下:

builder.RegisterType<MoveCustomerHandler>()
    .As<IHandler<MoveCustomerCommand>>();

builder.RegisterType<ProcessOrderHandler>()
    .As<IHandler<ProcessOrderCommand>>();

builder.RegisterType<SomeOtherFancyHandler>()
    .As<IHandler<SomeOtherFancyCommand>>();

// Many handler registrations here...

命令处理程序通过使用构造喷射中喷射出,如在下面可以看到:

public class OrderController
{
    private readonly IHandler<ProcessOrderCommand> handler;

    public OrderController(IHandler<ProcessOrderCommand> handler)
    {
        this.handler = handler;
    }
}

有没有批量注册我使用Autofac一个简单的方法的所有处理的方法吗?

c# .net dependency-injection ioc-container autofac
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.