コード例 #1
0
        /// <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();
        }
コード例 #2
0
        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);
        }