/// <summary> /// Since our abilities implement a behavior (interface) and not a state (base class), serialization must be done /// manually. /// </summary> public void ReadXml(XmlReader reader) { var name = reader.GetAttribute("Name"); var specialization = reader.GetAttribute("Specialization"); var hotKey = reader.GetAttribute("Hotkey"); var modifierKey = reader.GetAttribute("Modifier"); reader.Read(); Name = name; WoWSpec outSpec; Enum.TryParse(specialization, out outSpec); Specialization = outSpec; Keys outHotKey; Enum.TryParse(hotKey, out outHotKey); HotKey = outHotKey; ModifierKeys outModifierKey; Enum.TryParse(modifierKey, out outModifierKey); ModiferKey = outModifierKey; var serializer = new XmlSerializer(ChainedAbilities.GetType()); ChainedAbilities = (List <ChainedAbility>)serializer.Deserialize(reader); reader.ReadEndElement(); }
public void WriteXml(XmlWriter writer) { if (ChainedAbilities == null) { return; } writer.WriteAttributeString("Name", Name); writer.WriteAttributeString("Specialization", Specialization.ToString()); writer.WriteAttributeString("Hotkey", HotKey.ToString()); writer.WriteAttributeString("Modifier", ModiferKey.ToString()); var serializer = new XmlSerializer(ChainedAbilities.GetType()); serializer.Serialize(writer, ChainedAbilities); }