0

我有一个继承自IXmlSerializable. 我已经正确地覆盖了ReadXmlandWriteXml方法。

我正在使用XmlSerializer将对象序列化/反序列化为 xml 文件。

当我Serialize对象时,它正在正确地写入\r\n文件。但是当我Deserialize以同样的方式处理对象时,\r已被删除,只有\n存在。我无法弄清楚它为什么这样做。

4

2 回答 2

2

它被称为规范化,并在XML 规范中明确定义

... XML 处理器必须将已解析实体中的换行符规范化为 #xA,方法是在解析之前将两个字符序列 #xD #xA 和任何不跟随 #xA 的 #xD 转换为 #xA,...

可以通过XmlTextReader.Normalization禁用一些规范化。

于 2015-04-23T19:12:35.060 回答
0

只处理'\n'文本文件中的换行符是正常的。DOS/Windows C 库具有“文本模式”,可以透明地将 CR-LF 转换为 LF 并返回。

于 2015-04-23T19:07:43.687 回答