public void Deserialize(string str) { using (TextReader textReader = new StringReader(str)) using (XmlReader xmlReader = new XmlTextReader(textReader)) { xmlReader.ReadStartElement(); xmlReader.ReadStartElement(); this.Id = new Guid(xmlReader.ReadContentAsString()); xmlReader.ReadEndElement(); xmlReader.ReadStartElement(); this.Value1 = xmlReader.ReadContentAsInt(); xmlReader.ReadEndElement(); xmlReader.ReadStartElement(); this.Value2 = xmlReader.ReadContentAsDateTime(); xmlReader.ReadEndElement(); xmlReader.ReadStartElement(); this.Value3 = xmlReader.ReadContentAsString(); xmlReader.ReadEndElement(); xmlReader.ReadStartElement(); this.Value4 = xmlReader.ReadContentAsDecimal(); xmlReader.ReadEndElement(); xmlReader.ReadEndElement(); } }
/// <summary> /// Load data cached in aarExplodeDataFile into aarExplodeData. /// </summary> private void LoadAarExplodeCache() { if (!File.Exists(aarExplodeDataFile)) return; XmlTextReader reader = new XmlTextReader(new StreamReader(aarExplodeDataFile)); aarExplodeData.Clear(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "aars") { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "explodeData") { string aar = ""; AarExplodeData aarData = new AarExplodeData(); do { if (!reader.Read()) break; if (reader.NodeType == XmlNodeType.Element) { string elementName = reader.Name; if (reader.Read() && reader.NodeType == XmlNodeType.Text) { if (elementName == "aar") { aar = reader.ReadContentAsString(); } else if (elementName == "modificationTime") { aarData.modificationTime = reader.ReadContentAsDateTime(); } else if (elementName == "explode") { aarData.explode = reader.ReadContentAsBoolean(); } else if (elementName == "bundleId") { aarData.bundleId = reader.ReadContentAsString(); } else if (elementName == "path") { aarData.path = reader.ReadContentAsString(); } } } } while (!(reader.Name == "explodeData" && reader.NodeType == XmlNodeType.EndElement)); if (aar != "") aarExplodeData[aar] = aarData; } } } } }