我希望保存并加载一个包含 a 的类 (MeasConSettings)ObservableCollection<string>
问题是列表在我的构造函数中初始化,所以当我执行以下操作时:
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但是如果文件不包含列表(例如保存文件的先前版本),如果我删除初始化并且保存的文件中没有列表,列表中将没有项目。这是不可接受的,因此:
有没有一种正确的方法可以在构造函数中加载带有初始化的可观察集合,而不会出现重复项?
或者
是否有正确的方法来检查保存的文件是否包含某些参数?