晚上好
我认识到当前使用C#语言编写的应用程序,不得不使用XmlSerializer进行序列化。
我必须能够将列表保存在xml文件中。然后,必须恢复该文件的数据才能恢复列表。我设法做到了所有这些,这是我的代码:
要保存列表:
Stream stream = File.OpenWrite(chemin);
XmlSerializer xmlSer = new XmlSerializer(typeof(List<Utilisateur>));
xmlSer.Serialize(stream,listeUtilisateurs);
stream.Close();
要检索列表:
Stream stream = File.OpenRead(chemin);
XmlSerializer xmlSer = new XmlSerializer(typeof(List<Utilisateur>));
List<Utilisateur> listrecuperee = (List<Utilisateur>)xmlSer.Deserialize(stream);
listeUtilisateurs = listrecuperee;
stream.Close();
但是,问题在于,每次保存列表时,之前要保留的数据都会消失,我想保留它,实际上我希望它在文件之后写入。请问您有解决办法吗?亲切地
答案 0 :(得分:0)
是的,我们可以做您想做的事。
要序列化到同一文件的代码:
int orderNumber = 2; // for example, read the second data collection in order
var xmlReaderSettings = new XmlReaderSettings
{
ConformanceLevel = ConformanceLevel.Fragment
};
using (var reader = XmlReader.Create("test.txt", xmlReaderSettings))
{
int count = 0;
while (reader.ReadToFollowing("ArrayOfUtilisateur"))
{
count++;
if (count == orderNumber)
break;
}
var list = (List<Utilisateur>)xmlSer.Deserialize(reader);
}
用于读取一组数据的代码:
.... . ($isFirst ? ' checked' : '') . ...
当然,您在阅读时需要添加必要的检查。
这种使用单个文件的方式虽然很麻烦,但却很丑陋。因此,请考虑其他用于保存数据的选项。