我正在尝试将应用程序与第三方 Web 服务集成。我必须调用的方法的签名是这样的(由 VS 代理生成器生成):
string MyFoo(string param1, string param2, string param3, string someXml)
现在对于前 3 个参数没有问题。根据供应商规范,第四个参数应包含“包装在 CDATA 块中的未转义 xml”,如下所示:
<![CDATA[<?xml version="1.0" encoding="utf-8"?><rootNode></rootNode>]]>
现在,c# 转义(正如我所期望的那样)所有必须转义的字符,主要是“<”和“>”字符,甚至在 CDATA 语句中,结果如下:
<![CDATA[<?xml version="1.0" encoding="utf-8"?><rootNode></rootNode>]]>
据我所知,这是一种正确的行为,并且无法覆盖它,因为它可能会产生错误的请求(无效的肥皂消息)甚至是安全问题。
有谁知道我是否错过了什么,不知道什么,或者这是正确的并且无法满足第三方网络服务的期望?
谢谢。