我想使用 WCF 发送 XML 以将记录插入到内部数据库表中。此 XML 需要采用任何样式(不作为数据合同预先序列化)。此外,拥有此服务的目的是允许我们的任何客户发送 XML 数据,这意味着必须使用通用输入法(例如,对于那些不使用 Visual Studio 的客户)。尝试此操作时,XML 标记被转义,有效地使使用的有效负载空间增加了 50% 以上。
<Payload></Payload>
对比
<Payload></Payload>
由于我想允许发送大量数据,并且由于使用了更多的空间(因为转义标签),所以这是不切实际的。
我尝试使用 CDATA 封装(<![CDATA[<Payload></Payload>]]>
),但是,标签仍然被转义(<![CDATA[<Payload></Payload>]]>
)。
从其他文章中,我了解到您可以传递 XElement 类型的参数,但是当我尝试这样做时,客户端代码说:“'String' 类型的值无法转换为'System.Xml.Linq.XElement'。” 听起来它不允许那些不使用 VB.NET 或 C# 的人也使用此参数。
同样从其他文章中,人们说您可以使用 Stream 作为输入参数数据类型或字节数组。然而,那些没有 VB.NET 或 C# 的人也不能使用这些数据类型。如果他们也可以,那么强迫他们使用它们似乎并不实际。XML 输入就是我想让他们传入的所有内容。
是否有任何其他方式(当使用 Web.Config 文件而不是本地托管的服务器代码时)允许将任何 XML 作为可以作为纯 XML 输入的参数发送,但同时使任何人都可以调用它(例如,谁没有 Visual Studio)?
这是我研究这个解决方案的第三天,我开始失去希望。任何建议将不胜感激。