我有一个继承自IXmlSerializable
. 我已经正确地覆盖了ReadXml
andWriteXml
方法。
我正在使用XmlSerializer
将对象序列化/反序列化为 xml 文件。
当我Serialize
对象时,它正在正确地写入\r\n
文件。但是当我Deserialize
以同样的方式处理对象时,\r
已被删除,只有\n
存在。我无法弄清楚它为什么这样做。
我有一个继承自IXmlSerializable
. 我已经正确地覆盖了ReadXml
andWriteXml
方法。
我正在使用XmlSerializer
将对象序列化/反序列化为 xml 文件。
当我Serialize
对象时,它正在正确地写入\r\n
文件。但是当我Deserialize
以同样的方式处理对象时,\r
已被删除,只有\n
存在。我无法弄清楚它为什么这样做。
它被称为规范化,并在XML 规范中明确定义
... XML 处理器必须将已解析实体中的换行符规范化为 #xA,方法是在解析之前将两个字符序列 #xD #xA 和任何不跟随 #xA 的 #xD 转换为 #xA,...
可以通过XmlTextReader.Normalization禁用一些规范化。
只处理'\n'
文本文件中的换行符是正常的。DOS/Windows C 库具有“文本模式”,可以透明地将 CR-LF 转换为 LF 并返回。