如何在 .Net XDocument 中保留字符实体?

jer*_*wet 5 escaping linq-to-xml character-encoding

我正在将一组服务移植到 .Net 4.0 并且发现(令我非常沮丧)我在 XElement.Value() 中创建和存储的字符实体正在“恢复”到它们的原始字符值,当我将 XDocument 对象转换为 HTTP 响应的 XML 流。

“转义”字符需要作为字符实体(例如®而不是 ®)出现在 XML 文档中,以保持与编写为仅允许非拉丁字符的字符实体的遗留应用程序兼容。

有没有一种方法(不同的文档类型,或 Encoding() 方法,或其他方法)我可以配置 XDocument 以在创建 XML 流时保留这些字符实体?也许我可以使用 XDocument 或 XmlDocument 的替代方案?

Mat*_*nen 0

您是否尝试过创建编码设置为 latin-1 的 XmlWriter,然后使用它保存 XDocument?我还没有尝试过,但它可能会强制它使用不必要的字符实体。

如果它甚至不支持 Unicode,那么您使用的是哪种可怕的软件?