public virtual void ReadEndElement() { if (MoveToContent() != XmlNodeType.EndElement) { throw new XmlException(SR.Xml_InvalidNodeType, this.NodeType.ToString(), this as IXmlLineInfo); } Read(); }
public void ReadXml(XmlReader reader) { if (reader.IsEmptyElement) return; reader.ReadStartElement("CommandCollection"); reader.ReadStartElement("Commands"); while(reader.NodeType != XmlNodeType.EndElement) { var c = new Command(); switch(reader.Name) { case "AttackCommand": _mutableSerializer = new XmlSerializer(typeof(AttackCommand)); c = (AttackCommand)_mutableSerializer.Deserialize(reader); Commands.Add(c); break; case "TimedCommand": _mutableSerializer = new XmlSerializer(typeof(TimedCommand)); c = (TimedCommand)_mutableSerializer.Deserialize(reader); Commands.Add(c); break; } } reader.ReadEndElement(); reader.ReadEndElement(); }