反序列化soap响应C#

反序列化soap响应C#,c#,soap,deserialization,messages,C#,Soap,Deserialization,Messages,我从服务获得soap响应: <SOAP-ENV:Body> <ns1:getCurrencyListResponse> <getCurrencyListReturn SOAP-ENC:arrayType="ns2:Map[2]" xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item>

我从服务获得soap响应:

<SOAP-ENV:Body>
    <ns1:getCurrencyListResponse>
        <getCurrencyListReturn SOAP-ENC:arrayType="ns2:Map[2]" xsi:type="SOAP-ENC:Array">
            <item xsi:type="ns2:Map">
                <item>
                    <key xsi:type="xsd:string">id</key>
                    <value xsi:type="xsd:string">18</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">name</key>
                    <value xsi:type="xsd:string">USD</value>
                </item>
            </item>
            <item xsi:type="ns2:Map">
                <item>
                    <key xsi:type="xsd:string">id</key>
                    <value xsi:type="xsd:string">19</value>
                </item>
                <item>
                    <key xsi:type="xsd:string">name</key>
                    <value xsi:type="xsd:string">EUR</value>
                </item>
            </item>
        </getCurrencyListReturn>
    </ns1:getCurrencyListResponse>
</SOAP-ENV:Body>

在您的项目中,您应该添加对webservice的引用。
通过这种方式,将自动创建webservice的包装器,允许您调用其方法并使用包装器中的类获取响应。

序列化和反序列化对您来说是透明的。

这是一个问题。文件wsdl未指定返回类型。我想自己描述一下。
[SoapType(Namespace = "http://xml.apache.org/xml-soap", TypeName = "Map")]
public class Map
{
    public item[] item;
}

public class item
{
    [SoapElement]
    public string key;

    [SoapElement]
    public string value;
}