2009-10-15 45 views
0

我們有一種情況,我們可能想要在每次調用WCF操作時傳遞客戶端信息。在響應級別,我們希望具有指示成功和錯誤消息的字段。在WCF合同上使用Reqest/Response類 - 這是個好主意嗎?

使用Request類和Response類是個好主意嗎?我一直在尋找到兩種操作

OpeationResponseData Operation(OperationRequestData input);

我不使用OpeationRequest因爲有問題與WSDL。

我將擁有基類,每個操作都需要共同的字段。 例如:

OperationResonseData : Response 
OperationRquestData : Request 

另一種選擇是使用

Request<T> and Response<T>

我在想,如果有一個更好的方式,或是出現在這個問題上的一些準則...

回答

3

WCF的基本消息架構the Message class已經支持所有這些內置概念。

  • 有關每個邏輯操作應該傳遞的信息,請使用標題。
  • 對於拋出FaultException的錯誤,或者如果您想要返回一個包含錯誤的自定義數據結構,則拋出FaultException。由於錯誤導致錯誤,沒有錯誤表明成功。如果你想返回關於你的成功的細節,那麼你的操作應該返回一個自定義的數據類型,否則你可以返回void。

該如何映射到什麼通過線路發送取決於什麼格式的堆棧你使用(SOAP,REST等)。默認堆棧是SOAP,作爲WCF的藍圖,具有非常自然的映射:頭映射到SOAP頭和故障直接映射到SOAP錯誤。對於REST標頭可以映射爲HTTP標頭,並且故障會導致帶有消息的500狀態。

+0

謝謝。我正在使用肥皂標題。很棒。感謝您的反饋意見。 – user80855 2009-10-17 13:13:52

相關問題