12
我得到了一个组件,实现IHandler<TCommand>
很多具体的类型,如下面的批量注册:Autofac:开放式泛型类型
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以简单的方式批量注册我的所有处理程序?
感谢您的答复。我不确定你想在这里完成什么。 'Type.GetCustomAttributes()'方法返回一个'object []',那怎么会帮到我? – Steven 2011-04-26 15:42:38
我的不好。我试图在浏览器文本框中复制/粘贴和编辑。我编辑了那部分。 – 2011-04-26 15:58:23