我从第三方导入了wsdl,并在SOAP消息中找回了基类名称,而不是在出现错误情况时返回了实际的类名称。即使返回了SOAP,这也会导致null响应。
这是类在Reference.cs文件中的外观。
public partial class GetStatusResponse :BaseResponse {
// There is nothing in the child class
}
由于错误而返回的SOAP消息:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns0:BaseResponse Status="Error" xmlns:ns0="myNameSpace">
<ns0:Error>
<ns0:ErrorStatus>UnhandledError</ns0:ErrorStatus>
<ns0:ErrorMessage>INVALID_CODE</ns0:ErrorMessage>
</ns0:Error>
</ns0:BaseResponse>
</S:Body>
</S:Envelope>
一切成功后,将返回以下SOAP消息,并且一切正常。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns0:GetStatusResponse Status="Success" xmlns:ns0="myNameSpace">
<ns0:Success>
<ns0:ID>1234567890</ns0:ID>
</ns0:Success>
</ns0:GetStatusResponse>
</S:Body>
</S:Envelope>
如何修改Reference.cs文件以知道SOAP中的BaseResponse实际上是GetStatusResponse,因此它将对其进行拾取并以C#代码返回返回的对象?现在,我的响应只是空的。