【发布时间】:2010-04-03 11:22:42
【问题描述】:
我的应用程序有一个设置对象,其中有两个集合。这些集合是简单的 List 泛型,其中包含一组属性包。当我序列化它时,一切都没有问题地保存:
XmlSerializer x = new XmlSerializer(settings.GetType());
TextWriter tw = new StreamWriter(@"c:\temp\settings.cpt");
x.Serialize(tw, settings);
但是当我反序列化它时,除了两个集合之外的所有东西都恢复了(通过在设置器上设置断点来验证:
XmlSerializer x = new XmlSerializer(typeof(CourseSettings));
XmlReader tr = XmlReader.Create(@"c:\temp\settings.cpt");
this.DataContext = (CourseSettings)x.Deserialize(tr);
这是什么原因造成的?一切都很普通......这是设置对象中的一个sn-p......省略了大部分内容。 PresentationSourceDirectory 工作得很好,但没有命中 PresentationModules 的设置器:
private string _presentationSourceDirectory = string.Empty;
public string PresentationSourceDirectory {
get { return _presentationSourceDirectory; }
set {
if (_presentationSourceDirectory != value) {
OnPropertyChanged("PresentationSourceDirectory");
_presentationSourceDirectory = value;
}
}
}
private List<Module> _presentationModules = new List<Module>();
public List<Module> PresentationModules {
get {
var sortedModules = from m in _presentationModules
orderby m.ModuleOrder
select m;
return sortedModules.ToList<Module>();
}
set {
if (_presentationModules != value) {
_presentationModules = value;
OnPropertyChanged("PresentationModules");
}
}
}
【问题讨论】:
标签: c# xml serialization xml-serialization