2014-10-06 50 views
0

我們有一個使用WCF構建的系統,我們正在將其轉換爲使用Mass Transit和RabbitMQ。減少大衆運輸所需的樣板代碼

因爲它是/是一個WCF服務,它的運行方式非常RESTful,沒有狀態或會話。

考慮到這一點,搬遷到大衆搬家公司需要大量的鍋爐板碼。例如,我們可能有100個WCF調用。對於每一個,我將不得不實施一個單獨的Request/Response對,除了名稱之外,它們彼此沒有什麼不同。顯然,我甚至不能使用繼承來抽象出CorrelatedBy<Guid>語法。

有沒有什麼辦法可以減少這樣做所需的樣板代碼的數量?

我當前MassTransit代碼如下所示:

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

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

我理解需要鍵入的要求,但我能不能有我回應一個通用的「布爾」返回類型。 Guid不會確保它到達正確的地方嗎?

回答

0

您可以使用單個響應類型來避免爲每個請求/響應配對創建一個「ok」響應類型。

您也不需要使用CorrelatedBy,因爲在請求/響應對話的客戶端的SendRequest調用中會自動爲您設置RequestId。