我有一个继承自IXmlSerializable
的班级。我已正确覆盖ReadXml
和WriteXml
方法。
我正在使用XmlSerializer
将对象序列化/反序列化为xml文件。
当我Serialize
对象时,它正确地将\r\n
写入文件。但是当我以同样的方式Deserialize
对象时,\r
已被删除,只有\n
存在。我无法弄清楚它为什么会这样做。
答案 0 :(得分:2)
它被称为规范化,并在XML specification
中明确定义... XML处理器必须正常化换行符解析实体到#xA要么通过平移两个字符序列#xD #xA和任何#xD其后面没有#xA到#xA上输入解析之前, ...
可以通过XmlTextReader.Normalization禁用某些规范化。
答案 1 :(得分:0)
对于文本文件中的新行,仅处理'\n'
是正常的。 DOS / Windows C库具有"文本模式"它透明地将CR-LF转换为LF并返回。