У меня большая проблема с десериализацией 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>
метод вызова
[SoapDocumentMethod] [SoapTrace] public object[] CardsList(string login, string password) { object[] result = this.Invoke("CardsList", new object[] { LOGIN, PASSWORD }); return (object[])result; }
метод Invoke всегда возвращает ноль, поэтому проблема в десериализации. Кто-нибудь знает, как исправить процесс десериализации? Как я могу повлиять на это или я могу написать свой собственный метод десериализации ??
Большое спасибо!
Как вы создали код, который вы разместили? Это было из команды «Добавить веб-ссылку», или вы сами создали этот код? Я спрашиваю, потому что это похоже на ответ от приложения в стиле RPC.