2010-12-10 54 views
0

我需要關於此體系結構問題的提示。WCF使用批量操作進行異常處理

我的應用程序調用執行特定任務的不同wcf服務,返回模型對象列表。

說,我有一個服務,投票返回List<SeTitle>股票交易所冠軍。 [純屬虛構的例子,我正在讀關於這個問題的書]

如果一個異常發生在一個或該名單的幾個要素我在WCF服務兩種選擇:

  • 捕獲異常,記錄它並返回列表<>,但這樣我將失去我的應用程序中所有錯誤項目的證據。
  • 在第一次錯誤時拋出異常,但這樣我就不會收到任何信息,即使只有一個項目是「錯誤的」。

我的意願是要去第三個選項,這意味着我會一直返回我的列表,但帶有錯誤項目的證據。

我的想法是,讓我所有的模型對象擴展一個簡單的界面像(赦免的名字,他們是可怕的)

public interface IWcfReturnObject 
{ 
    public List<WarningModel> Warnings; 
} 

public class SeTitle : IWcfReturnObject 
以這樣的方式

的每個元素列表可能有一個關聯的警告/錯誤列表返回給應用程序,然後返回到接口。

我的問題是:

  • 是我的問題清楚明白?! ;)
  • 您是否認爲我的願望(從wcf接收所有元素並附帶警告)在架構上很好?
  • 你認爲現在有更好的方法來解決這個問題嗎?

感謝

M.

編輯:我是做研究,並在第一個回答的樣子,我認爲它是有用的給一個解決方案,我在NET

可能的解決方案

發現
  1. 我的路
  2. 記錄某種相關性a第二是指它在業務層上的decyclone建議
  3. AggregateException

回答

2

我想你應該記錄下你的異常/錯誤/警告,而不是與結果數據一起發送他們。您始終可以參考日誌,也可以創建一個界面來查看錯誤日誌。但是,常見的結果數據不應與異常數據混合使用。

+1

我明白了你的觀點。儘管如此,我認爲這是一個普遍需要,可以解決。我正在編輯我的問題以澄清我的觀點。 – Mauro 2010-12-10 09:35:48