我有一个函数,它可以将我在一个列表中的所有对象的信息写入一个XML文件中。
public static void UpdateXML()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter Writer = XmlWriter.Create("path", settings);
Writer.WriteStartDocument();
Writer.WriteStartElement("Accounts");
foreach (var acc in Bank.Bankaccountlist)
{
Writer.WriteStartElement("Account");
Writer.WriteAttributeString("ID", acc.id.ToString());
Writer.WriteElementString("Name", acc.GetName());
Writer.WriteElementString("Lastname", acc.GetLastname());
Writer.WriteElementString("Balance", acc.GetBalance().ToString());
Writer.WriteEndElement();
}
Writer.WriteEndElement();
Writer.Flush();
Writer.Close();
}
现在,当程序被关闭时,所有的数据仍然在文件中。所以,当程序再次启动时,它应该再次创建所有的旧对象(创建一个 Account
对象会自动将其放入列表中)。)
谁能告诉我这是怎么做到的?
请注意 int id
和 double balance
.
要根据你的实际解决方案给出答案,你应该用一个 XmlReader
对应 XmlWriter
. 对于字符串以外的其他属性类型,你应该使用 Convert
或适当的 TryParse
的方法。但你可以看看 XmlSerializer
这正是针对你的用例。
https:/docs.microsoft.comen-usdotnetapisystem.xml.serialization.xmlserializer?view=netcore-3.1。
你还必须将o jet的每个部分标记为xml属性,以便将对象序列化为xml。 然后你就可以在xml目录下的文件中循环并反序列化它们,使用xml阅读器。 我相信有一个nuget包可以帮助解决这个问题。