C# .NET中的Apache webservice反序列化问题

C# .NET中的Apache webservice反序列化问题,c#,web-services,apache,xml-serialization,C#,Web Services,Apache,Xml Serialization,我对来自第三方Web服务的XML响应的反序列化有很大的问题 下面是xml响应 <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://

我对来自第三方Web服务的XML响应的反序列化有很大的问题

下面是xml响应

<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ns1:CardsListResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
      <return xmlns:ns9402="http://xml.apache.org/xml-soap" xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="ns9402:Map[62]">
        <item xmlns:ns6162="http://xml.apache.org/xml-soap" xsi:type="ns6162:Map">
          <item>
            <key xsi:type="xsd:string">card</key>
            <value xsi:type="xsd:string">0000000000</value>
          </item>
          <item>
            <key xsi:type="xsd:string">service</key>
            <value xsi:type="xsd:string">0</value>
          </item>
        </item>
      </return>
    </ns1:CardsListResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Invoke方法总是返回null,因此问题在于反序列化。 有人知道如何修复反序列化过程吗?我该如何影响这一点,或者我可以编写自己的反序列化方法


非常感谢

您是如何创建您发布的代码的?这是来自addweb引用命令,还是您自己创建的代码?我这样问是因为这看起来像是来自RPC风格应用程序的响应。

我自己创建了它,因为该服务没有WSDL。如果它没有WSDL,那么它就不是SOAP web服务。你不得不猜测客户和服务之间的合同是什么。Good luck.WSDL完全描述了服务。它提供序列化和反序列化所需的信息。在任何情况下,请尝试[SoapRpcMethod]
[SoapDocumentMethod]
[SoapTrace]
public object[] CardsList(string login, string password)
{
object[] result = this.Invoke("CardsList", new object[] { LOGIN, PASSWORD });
return (object[])result;
}