我正在为游戏创建攻击计划器,并具有以下类:
public class AttackTypes : ObservableCollection<AttackType> { }
public class AttackType
{
public AttackTypeEnum Type { get; set; }
public Units units { get; set; }
public string Name { get; set; }
public AttackType()
{
units = new Units();
}
}
public class AttackPatterns : ObservableCollection<AttackPattern> { }
public class AttackPattern
{
public string Name { get; set; }
SerializableDictionary<AttackType, int> Count { get; set; }
public AttackPattern(AttackTypes types)
{
Count = new SerializableDictionary<AttackType, int>();
foreach (AttackType item in types) { Count.Add(item, 0); }
}
}
AttackType 保存有关我要发送的单位的信息。用户可以创建 5 到 10 种不同的类型。AttackPattern 用于对不同的 AttackType 进行分组。基本上,该模式具有对完整 AttackType 列表的引用,并将每个 AttackType 作为模式一部分的频率保存在字典中。当 AttackType 的单位发生变化时,这些变化也会在模式中可见。
现在我想将整个内容保存到光盘并在下次启动程序时加载它。到目前为止,我一直在使用 XML 序列化。我必须解决问题。第一:引用的整个结构寿命。正如我之前所说:当我更新 AttackType 时,我还需要查看模式的变化。但是当我将其转储到 XML 时,这些联系就丢失了。第二:我序列化 AttackTypes 对象。有关单位的所有详细信息都在那里。当我序列化一个模式时,AttackTypes 的整个列表(包括单位)被再次保存。再次为下一个模式。再次为下一个模式...
有任何想法吗?