在XML中将XML作为输入参数传递

时间:2014-11-14 10:21:35

标签: c# asp.net .net xml wcf

有一个输入参数类型为string的web方法。但是这个参数实际上不是字符串而是xml。输入的例子是:

<![CDATA[<check>
  <id>12354564</id>
  <idMeaning>msisdn</idMeaning>
<amount>500</amount>
</check>]]>

Bellow被我的代码剪断,我在其中创建输入并调用方法

// create xml
var xml = new XElement("check",             
                new XElement("id", "41504823"), 
                new XElement("idMeaning", "msisdn"),
                new XElement("amount", "500")
                );      

// add CDATA
var input = new XCData(xml.ToString());

// get client
var client = WSWrapper.GetClient();

// call method
client.DoCheck(input.ToString());

但是我遇到编码问题。如果我通过线路检查请求,我可以看到xml已编码为

 &lt;![CDATA[&lt;check&gt;
 &lt;id&gt;41504823&lt;/id&gt;
 &lt;idMeaning&gt;msisdn&lt;/idMeaning&gt;
 &lt;amount&gt;500&lt;/amount&gt;
 &lt;/check&gt;]]&gt

如何阻止此编码?

1 个答案:

答案 0 :(得分:1)

无论你在网上阅读的是什么,你都不是以XML格式阅读它,而是以“文本格式”,“lt”代表“小于”,“&lt;”和gt,“大于”,“&gt;”。

请确保您在顶部有声明:

<?xml version="1.0" encoding="UTF-8"?>