【发布时间】:2013-05-15 08:38:30
【问题描述】:
我希望保存并加载一个包含 ObservableCollection<string> 的类 (MeasConSettings) 问题是列表在我的构造函数中初始化,所以当我执行以下操作时:
XmlSerializer serializer = new XmlSerializer(typeof(MeasConSettings));
创建了一个包含项目 1 2 3 4 的列表。它可以很好地保存所有内容,但在加载方面却出错了:
MeasConSettings loadedSettings = (MeasConSettings)serializer.Deserialize(stream);
它从初始化列表开始并添加加载的列表项而不是覆盖它们,因此结果是一个包含项目 1 2 3 4 1 2 3 4 的列表。
显然,解决方案是从构造函数中删除初始化,如本主题所示:Deserializing List with XmlSerializer Causing Extra Items 但如果文件不包含列表(例如保存文件的以前版本),如果我删除初始化并且保存的文件中没有列表,列表中将没有项目。这是不可接受的,所以:
有没有合适的方法来加载一个在构造函数中初始化的 observable 集合,而不会出现重复项?
或
是否有正确的方法来检查保存的文件是否包含某些参数?
【问题讨论】:
标签: c# wpf serialization initialization xmlserializer