我正在使用 WCF 连接到业务合作伙伴的 Web 服务。Web 服务没有定义的故障契约 - <wsdl:fault>
WSDL 中没有元素。
当发生故障时,我会得到这样的响应(为了可读性而修剪命名空间):
<s:Envelope>
<s:Body>
<Fault>
<faultcode>xxx</faultcode>
<faultstring>Business data error</faultstring>
<detail>
<Error>
<ErrorCode>xxx</ErrorCode>
<ErrorDescription>xxx</ErrorDescription>
</Error>
</detail>
</Fault>
</s:Body>
</s:Envelope>
在我的代码中,我可以像这样捕获异常:
try
{
proxy.DoWork();
}
catch(FaultException fex)
{
...
}
但是因为没有定义的 FaultContract 我不能使用基于泛型的FaultException
(比如catch(FaultException<myFaultType>)
)。
长话短说,我需要能够检查上述 SOAP 错误中返回的元素中的<ErrorCode>
和<ErrorDescription>
元素。<Error>
catch
谢谢