WCF サービスにEnterprise Library Validation Application Blockを使用しています。すべて問題なく、.Net コンシューマーはFaultException<ValidationFault>
例外をキャッチして、人間が判読できるビジネス エラーのコレクションを取得できます。ただし、.Net 以外のコンシューマ、特に未加工の SOAP メッセージを表示するコンシューマにとっては、あまり見栄えがよくありません。SOAP 理由のテキストは常に "この障害の作成者は理由を指定しませんでした。 " これはあまり役に立ちません。以下の障害メッセージの例に示すように、要素の下に理由が指定されているためです。<Detail>
「この障害の作成者は理由を指定しませんでした。 」というテキストを「ValidationFault の詳細を参照してください」などのより役立つものに変更する方法はありますか?
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-GB">The creator of this fault did not specify a Reason.</s:Text>
</s:Reason>
<s:Detail>
<ValidationFault xmlns="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Details xmlns:b="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
<b:ValidationDetail>
<b:Key i:nil="true"/>
<b:Message>Value Validator</b:Message>
<b:Tag>request</b:Tag>
</b:ValidationDetail>
</Details>
</ValidationFault>
</s:Detail>
</s:Fault>
</s:Body>