나는 다음과 같은 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을 사용하여 손쉽게 모든 Handler를 배치 등록 할 수 있습니까?
덕분에 당신의 응답을. 나는 당신이 여기에서 성취하려고하는 것을 확신하지 못한다. 'Type.GetCustomAttributes()'메쏘드는'object []'를 반환합니다. 어떻게 그렇게 도움이됩니까? – Steven
제 잘못입니다. 브라우저 텍스트 상자에 복사/붙여 넣기 및 편집을 시도했습니다. 나는 그 부분을 편집했다. –