Ejemplo n.º 1
0
        public void WriteXml(XmlWriter writer)
        {
            XmlSerializer   xmlSerializer = new XmlSerializer(typeof(List <KeyEntry>));
            List <KeyEntry> keyEntries    = new List <KeyEntry>();

            foreach (KeyValuePair <long, List <long> > thisColl in CharCollection)
            {
                keyEntries.Add(new KeyEntry()
                {
                    Key  = thisColl.Key,
                    Item = thisColl.Value
                });
            }
            writer.WriteStartElement("Character");
            writer.WriteAttributeString("name", name);
            writer.WriteAttributeString("AdvLvl", AdvLvl.ToString());
            writer.WriteAttributeString("AdvClass", AdvClass.ToString());
            writer.WriteAttributeString("TimePlayed", TimePlayed.ToString());
            writer.WriteAttributeString("DaybreakID", DaybreakID.ToString());
            writer.WriteAttributeString("ServerID", ServerID.ToString());
            xmlSerializer.Serialize(writer, keyEntries);
            writer.WriteFullEndElement();
            keyEntries.Clear();
        }
Ejemplo n.º 2
0
        public void ReadXml(XmlReader reader)
        {
            List <KeyEntry> keyEntries;
            XmlSerializer   xmlSerializer = new XmlSerializer(typeof(List <KeyEntry>));

            _ = reader.MoveToContent();
            reader.ReadStartElement("Characters");
            name       = reader.GetAttribute("name");
            AdvLvl     = short.Parse(reader.GetAttribute("AdvLvl"));
            AdvClass   = short.Parse(reader.GetAttribute("AdvClass"));
            TimePlayed = long.Parse(reader.GetAttribute("TimePlayed"));
            DaybreakID = long.Parse(reader.GetAttribute("DaybreakID"));
            short MaybeServer;

            try { MaybeServer = short.Parse(reader.GetAttribute("ServerID")); }
            catch (ArgumentNullException)
            {
                XDocument RawServer = Program.GetThisURL(string.Concat(@"character/?c:show=locationdata.worldid&id=", DaybreakID.ToString()));
                MaybeServer = short.Parse(RawServer.Root.Element("character").Element("locationdata").Attribute("worldid").Value);
            }
            ServerID = MaybeServer;
            reader.ReadStartElement("Character");
            keyEntries = (List <KeyEntry>)xmlSerializer.Deserialize(reader);
            foreach (KeyEntry keyEntry in keyEntries)
            {
                if (!CharCollection.ContainsKey(keyEntry.Key))
                {
                    CharCollection[keyEntry.Key] = new List <long>();
                }
                CharCollection[keyEntry.Key].AddRange(keyEntry.Item);
            }
            keyEntries.Clear();
            reader.ReadEndElement();
            reader.ReadEndElement();
        }