質問は、私は1つのWCF呼び出しから複数のFaultExceptionsを返すための最良の方法の上に私の頭を叩いています言うように:1つのWCF呼び出しから複数のFaultExceptionsを返す最も良い方法は何ですか?
シナリオは以下の通りです:
クライアントAが
ClientBは多くを作るのClientBを呼び出しますServerCへの呼び出しにより、FaultExceptionsが返される可能性があります。
すべてのFaultExceptionsをClientAに戻したいと思います。
XmlSerializer、DataContractSerializer、およびNetDataContractSerializerを使用してFaultExceptionsとMessageFault Objectsの両方をシリアル化してデシリアライズしてみました。
本当に気になる要素は、理由、コード、詳細です。私の最後の手段は、理由とコードをシリアル化するコードを手動で記述することですが、これを避けることを望んでいます。
これには他にも方法がありますか?
編集:私は私の質問は、私は次の操作を実行しようとしている擬似コードで
非常に明確ではなかったと思う、私が得ている応答によって判断:
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:
まず、質問に答えようとしてくれた皆様に感謝したいと思います。答えのいくつかは、さまざまな問題に対する答えです。
1つのポスターを提案しましたが、エラーが発生するとすぐに例外がスローされます。残念ながら、これはシステムがどのように動作するようになっているかです。操作される各値は他の値とは完全に独立しており、他の値の成功またはエラーの影響を受けません。私は他の値の処理に影響を及ぼす一つのエラーを望んでいません。
もう1人のポスターが、すべてのフォルトのすべてのFaultExceptionデータを含む何らかの種類のデータ構造体を返すことを提案しました。それは私がやりたいことですが、問題は、FaultExceptionsのリストを返すと、直列化エラーがスローされるということです。 FaultExceptionをシリアル化する方法はありますか?WCF呼び出しから複数のリストを返すことはできますか?
理由だけではなく、道に沿ってFaultExceptionの情報を追加しませんか?あなたはそれをシリアル化する必要はありません、ちょうどそれをClientBでキャッチし、障害の情報にClientAに返された情報を追加しますか? – Will