由於這個問題說,我敲我的頭在最好的方法,從一個WCF調用返回多個FaultExceptions:從一次WCF調用中返回多個FaultExceptions的最佳方式是什麼?
的情況如下:
客戶端A撥打電話時ClientB
ClientB使得許多調用ServerC其中一些可能會返回FaultExceptions
我想將所有FaultExceptions返回給ClientA,我還沒有遇到任何好的方法來做到這一點。
我試圖序列化和反序列都FaultExceptions和MessageFault對象與XmlSerializer的,DataContractSerializer的和NetDataContractSerializer無濟於事。
我真正關心的唯一元素是理性,代碼和細節。我最後的手段是手動編寫代碼來序列化原因和代碼,但我希望避免這種情況。
有沒有其他方法可以解決這個問題?
編輯:
class ClientA()
{
Main()
{
ClientB.OperateOnManyValues(array[] values)
}
}
ClientB()
{
OperateOnManyValues(array[] values)
{
foreach(Val val in values)
{
try
{
ServerC.OperateOnOneValue(val)
}
catch(FaultException ex)
{
errorList.Add(ex)
}
}
return errorList
}
}
編輯2:由我已經得到我覺得我的問題不是很清楚
在僞代碼,我嘗試做如下的答覆來看
首先我想感謝大家試圖回答這個問題。我覺得有些答案是解決不同問題的答案。
一個海報建議我一出現錯誤就會拋出異常。不幸的是,現在系統是如何工作的。每個操作的值都完全獨立於其他值,並且不受其他值的成功或錯誤的影響。我不希望有一個錯誤影響其他值的處理。
另一張海報建議用所有FaultException數據返回某種數據結構以用於所有故障。這是我想要做的,但問題是返回一個FaultExceptions列表會引發序列化錯誤。有沒有什麼辦法來序列化一個FaultException,所以我可以從WCF調用的列表中返回多個?
爲什麼不追加的FaultException的沿途信息?您不必序列化它,只需在ClientB上捕獲它並將錯誤添加到傳回給ClientA的錯誤中的信息中? – Will 2011-01-25 20:19:16