我有一个返回 xml block 的 WCF 服务。一个元素是 CData[] 部分。我的应用程序从数据库中读取一个 HTML 文件,并使用 ABCPDF 将其转换为 PDF byte[] 数组。然后在我的 XmlWriter 中将字节添加到 CData 部分。
问题是生成的 xml 如下所示:
<![CDATA[System.Byte[]]]>
如何将字节串放入 CData 部分?我试过类似的东西:
string str;
ASCIIEncoding enc = new ASCIIEncoding();
str = enc.GetString(theData);
和
Convert.ToBase64String(theData);
我卡住了!!任何帮助都会很棒,谢谢!
最佳答案
如果您可以控制两端,使用 Convert.ToBase64String(data)
绝对是到达此处的方法。您不想发送“原始”字节并假装它们是有效的文本数据。在另一侧使用 Convert.FromBase64String(text)
。
令我略感意外的是 WCF 并未自动为您处理此问题。我不能说我自己用过它(Marc Gravell 可能会突然出现 - 我相信他对此有很多经验)但我希望它只公开字节数组。为什么要参与 XML 级别?
关于C#:xml CData 中的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/964664/