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