SOAP响应在复杂引用类型的反序列化过程中出现问题

时间:2017-03-06 15:30:40

标签: c# serialization soap response


我需要将SOAP消息反序列化为C#类。这是SOAP响应结构的一个示例:

<env:Envelope xmlns: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:ns0="http://mynamespace.it">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <env:Body>
    <ns0:objA env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <result href="#ID1" />
    </ns0:objA>
    <ns0:ArrayOfObjB id="ID1" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ans1="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ans1:Array" ans1:arrayType="ns0:ObjB[3]">
      <item href="#ID2" />
      <item href="#ID3" />
      <item href="#ID4" />
    </ns0:ArrayOfObjB>
    <ns0:ObjB id="ID2" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns0:ObjB">
      <ns0:field_1 xsi:type="xsd:string">1</ns0:field_1>
      <ns0:field_2 xsi:type="xsd:string">2016</ns0:field_2>
      <ns0:field_3 xsi:type="xsd:string">a</ns0:field_3>
    </ns0:ObjB>
    <ns0:ObjB id="ID3" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns0:ObjB">
      <ns0:field_1 xsi:type="xsd:string">1</ns0:field_1>
      <ns0:field_2 xsi:type="xsd:string">2016</ns0:field_2>
      <ns0:field_3 xsi:type="xsd:string">b</ns0:field_3>
    </ns0:ObjB>
    <ns0:ObjB id="ID4" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns0:ObjB">
      <ns0:field_1 xsi:type="xsd:string">1</ns0:field_1>
      <ns0:field_2 xsi:type="xsd:string">2016</ns0:field_2>
      <ns0:field_3 xsi:type="xsd:string">c</ns0:field_3>
    </ns0:ObjB>
  </env:Body>
</env:Envelope>


在Visual Studio 2015中,我通过粘贴此XML代码来创建类层次结构 类。我使用以下代码调用System.Runtime.Serialization.Formatters.Soap.SoapFormatter类提供的反序列化方法:

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(responseMessageXML));

SoapFormatter sf = new SoapFormatter();
object o = sf.Deserialize(ms);


我发现以下例外:

Parse Error, no assembly associated with XML key ns0 objA 


我该如何解决这个问题?

我尝试使用通过导入Web服务引用创建的自导入WSDL类,但我无法获得相关对象的价值。

似乎C#无法解决&#34; href&#34;属性引用。

非常感谢任何帮助:)

0 个答案:

没有答案