这个片段<!--Please don't delete this-->是我的 xml 文件的一部分。运行此方法后,生成的 xml 文件不再包含此代码段<!--Please don't delete this-->。为什么是这样?
这是我的方法:
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
TextWriter writer = new StreamWriter(path);
serializer.Serialize(writer, settings);
writer.Close();
Run Code Online (Sandbox Code Playgroud)
嗯,这很明显:
XmlSerializer将解析XML文件,解压缩的所有实例Settings从它-您的评论将不会是任何对象的一部分Settings对象的内容您的评论将落空 - 但我看不出有任何方法可以“保存”该评论,只要您使用 XmlSerializer 方法。
您需要做的是改用 XmlReader / XmlWriter:
XmlReader reader = XmlReader.Create("yourfile.xml");
XmlWriter writer = XmlWriter.Create("your-new-file.xml");
while (reader.Read())
{
writer.WriteNode(reader, true);
}
writer.Close();
reader.Close();
Run Code Online (Sandbox Code Playgroud)
这会将所有 xml 节点(包括注释)复制到新文件中。