C#:xml CData 中的字节数组

标签 c# xml arrays cdata abcpdf

我有一个返回 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/

相关文章:

c# - Visual Studio 自定义语言服务

c - XML 解析启动处理程序中的指针值已更改

sql - 从文件创建数组

arrays - Go语言复制数组的函数

javascript - 在有条件的数组中查找局部最大值 [JS]

c# - 使用派生类构造函数设置基类属性

javascript - 按类模拟点击javascript到元素

c# - 如何在cs文件的下拉列表中添加项目

sql-server - 为新的非 XML 行查询 XML 行

Java 说 XML 文档格式不正确