gpt4 book ai didi

c# - 为什么 XmlReader/XmlSerializer 在反序列化时会弄乱文本中的行跳转?

转载 作者:行者123 更新时间:2023-11-30 21:12:38 26 4
gpt4 key购买 nike

我的对象 template,它是从手工制作的 XML 文件中反序列化的,包含混合类型,文本可以包含行跳转。当我查看文本时,我可以看到换行符是 \r\n,但在我反序列化的 template 对象中,换行符是 \n .如何将行跳转保持为 \r\n

XmlReaderSettings settings = new XmlReaderSettings();
settings.CloseInput = true;
//settings.ValidationEventHandler += ValidationEventHandler;

settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(schema);

StringReader r = new StringReader(syntaxEdit.Text);

Schema.template rawTemplate = null;

using (XmlReader validatingReader = XmlReader.Create(r, settings))
{
try
{
XmlSerializer serializer = new XmlSerializer(typeof(Schema.template));
rawTemplate = serializer.Deserialize(validatingReader) as Schema.template;
}
catch (Exception ex)
{
rawTemplate = null;
string floro = ex.Message + (null != ex.InnerException ? ":\n" + ex.InnerException.Message : "");
MessageBox.Show(floro);
}
}

最佳答案

这似乎是 XML 规范所要求的行为,并且是 Microsoft 的 XmlReader ( see this answer) 实现中的“功能”。

对您来说,最简单的事情可能是将结果中的 \n 替换为 \r\n

关于c# - 为什么 XmlReader/XmlSerializer 在反序列化时会弄乱文本中的行跳转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com