public object Deserialize(System.Xml.XmlReader xmlReader) { List <Profile> profiles = new List <Profile>(); xmlReader.ReadStartElement("Profiles"); while (xmlReader.IsStartElement("Profile")) { Profile item = new Profile(); xmlReader.ReadStartElement(); item.Name = xmlReader.ReadElementString("Name"); item.Enabled = bool.Parse(xmlReader.ReadElementString("Enabled")); if (xmlReader.IsStartElement("EventTrigger")) { xmlReader.ReadStartElement(); ISerializer ser = SerializerProvider.GetSerializer(typeof(ITrigger)); IEventTrigger trigger = (IEventTrigger)ser.Deserialize(xmlReader); item.EventTrigger = trigger; xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); } item.StateTriggers = new List <IStateTrigger>(); if (xmlReader.IsStartElement("StateTriggers")) { xmlReader.ReadStartElement(); SerializerHelper.ReadWhiteSpace(xmlReader); while (xmlReader.IsStartElement()) { ISerializer ser = SerializerProvider.GetSerializer(typeof(ITrigger)); IStateTrigger trigger = (IStateTrigger)ser.Deserialize(xmlReader); item.StateTriggers.Add(trigger); } xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); } if (xmlReader.IsStartElement("EnterStateAction")) { xmlReader.ReadStartElement(); SerializerHelper.ReadWhiteSpace(xmlReader); item.ActionToExecute = SerializerHelper.DeserializeAction(xmlReader); xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); } if (xmlReader.IsStartElement("ExitStateAction")) { xmlReader.ReadStartElement(); SerializerHelper.ReadWhiteSpace(xmlReader); item.ActionToExecute = SerializerHelper.DeserializeAction(xmlReader); xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); } xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); profiles.Add(item); } xmlReader.ReadEndElement(); return(profiles); }
public object Deserialize(System.Xml.XmlReader xmlReader) { BlockAction blockAction = new BlockAction(); blockAction.ActionList = new List <IAction>(); xmlReader.ReadStartElement(); SerializerHelper.ReadWhiteSpace(xmlReader); while (xmlReader.IsStartElement("Action")) { IAction action = SerializerHelper.DeserializeAction(xmlReader); blockAction.ActionList.Add(action); } xmlReader.ReadEndElement(); SerializerHelper.ReadWhiteSpace(xmlReader); return(blockAction); }