WCF客户端在解析之前将命名空间添加到XML

时间:2014-09-22 09:03:00

标签: wcf soap wcf-client

我目前正在实施一个WCF客户端应用程序,该应用程序使用使用SOAP作为通信协议的Java Web服务。我从服务器提供的WSDL中生成了一个代理,当我进行调用时,所有内容都会运行而没有错误,但是收到的列表中没有元素。

我通过Wireshark和WCF跟踪/消息记录查看了传入的XML,因此可以确定我确实收到了预期的数据。但是它通过插入一个空的命名空间来阻止解串器从xml创建对象,从而在解析之前以某种方式操纵XML。

的Wireshark

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body xmlns:ns="stat">
    <ns:mt_getStation>
      <ROW>
        <Station_ID>96</Station_ID>
        <Station>Station Test</Station>
        <Timestamp>2014-09-15T14:00:35</Timestamp>
      </ROW>
      <ROW>
        <Station_ID>42</Station_ID>
        <Station>Answer Station Test</Station>
        <Timestamp>2014-09-15T14:00:35</Timestamp>
      </ROW>
    </ns:mt_getStation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

WCF消息日志

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header></SOAP-ENV:Header>
  <SOAP-ENV:Body xmlns:ns="stat">
    <ns:mt_getStation>
      <ROW xmlns="">
        <Station_ID>96</Station_ID>
        <Station>Station Test</Station>
        <Timestamp>2014-09-15T14:00:35</Timestamp>
      </ROW>
      <ROW xmlns="">
        <Station_ID>42</Station_ID>
        <Station>Answer Station Test</Station>
        <Timestamp>2014-09-15T14:00:35</Timestamp>
      </ROW>
    </ns:mt_getStation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

如何阻止WCF客户端插入空命名空间?

0 个答案:

没有答案