2014-10-06 4 views
0

우리는 WCF를 사용하여 시스템을 구축했으며 Mass Transit 및 RabbitMQ를 사용하도록 시스템을 변환하고 있습니다.대중 교통에 필요한 상용구 코드 줄이기

작동 방식이 매우 RESTful 인 WCF 서비스이기 때문에 상태 나 세션이 없습니다.

이 점을 염두에두고, Mass Tranist로 이동하려면 엄청난 양의 보일러 플레이트 코드가 필요합니다. 예를 들어 우리는 아마도 100 회의 WCF 호출을 할 수 있습니다. 각각의 경우, 나는 별도의 Request/Response 쌍을 구현해야하는데, 그 이름을 제외하고는 서로 다르지 않을 것입니다. 분명히 CorrelatedBy<Guid> 구문을 추상화하기 위해 상속을 사용할 수 없습니다.

이렇게하는 데 필요한 상용구 코드의 양을 줄일 수있는 방법이 있습니까?

sbc.Subscribe(subConfig => 
{ 
    subConfig.Handler<CanAllocateLicensedDeviceRequest>((ctx, req) => 
    { 
     bool result = this.licenceActions.CanAllocateLicensedDevice(); 

     ctx.Respond<CanAllocateLicensedDeviceResponse>(new CanAllocateLicensedDeviceResponse() { Result = result }); 
    }); 
} 

내가 입력 한 요청을해야 할 필요성을 이해하지만, 내가 응답 일반적인 "부울"반환 형식이 없습니다 :

나의 현재 MassTransit 코드는 다음과 같습니다. 가이드가 올바른 위치에 있는지 확인하지 않겠습니까?

답변

0

각 요청/응답 쌍에 대해 "ok"응답 유형을 만들지 않도록 단일 응답 유형을 사용할 수 있습니다.

또한 요청/응답 대화의 클라이언트 쪽에서 보낸 SendRequest 호출에서 RequestId가 자동으로 설정되므로 CorrelatedBy를 사용할 필요가 없습니다.