通过 DataContracts 序列化自定义数据对象并恢复它们时,我遇到了一个奇怪的问题。我有以下发生问题的类:
[DataContract]
public class ProjectManager
{
// list of projects
[DataMember]
public List<Project> ProjectList { get; set; }
// active project
[DataMember]
public Project ActiveProject { get; set; }
// instance variable
[DataMember]
private static ProjectManager instance = null;
ActiveProject 保存对 ProjectList 中一个对象的引用。问题是,在一种情况下,ActiveProject 中保存的引用似乎不等于 ProjectList 中的引用,尽管列表中只有一个。如果我更改我的 ActiveProject,我在 ProjectList 中的对象不会更改。
仅在反序列化数据后才会出现此问题,我不知道如何防止此错误发生。这种行为是否可能,或者我的代码中是否必须存在我尚未找到的交叉引用?