[英]Processing an XML file removes comments
此代碼段<!--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();
好吧,這很明顯:
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();
這會將所有xml節點(包括注釋)復制到新文件。
<!-- -->
表示XML注釋。 您正在將對象寫成XML-對象沒有注釋,因為它們在編譯期間會被注釋掉。
也就是說, Settings
對象(可能是您的.config XML的反序列化形式)在反序列化之后不會在內存中保存注釋,因此它們也不會被序列化。 對於框架的這種行為,您無能為力,因為沒有內置的機制可以使用XmlSerializer
對注釋進行反序列化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.