예제 #1
0
        public void Serialize(System.Xml.XmlWriter xmlWriter, object o)
        {
            BlockAction ba = (BlockAction)o;

            foreach (var action in ba.ActionList)
            {
                ISerializer actionSerializer = SerializerProvider.GetSerializer(action.GetType());
                xmlWriter.WriteStartElement("Action");
                //xmlWriter.WriteAttributeString("AssemblyQualifiedName", action.GetType().AssemblyQualifiedName);
                xmlWriter.WriteAttributeString("Type", SerializerHelper.GetActionName(action.GetType()));
                actionSerializer.Serialize(xmlWriter, action);
                xmlWriter.WriteEndElement();
            }
        }
예제 #2
0
        public override void Serialize(System.Xml.XmlWriter xmlWriter, object o)
        {
            base.Serialize(xmlWriter, o);
            IHasInnerAction action = (IHasInnerAction)o;

            xmlWriter.WriteStartElement("InnerAction");
            xmlWriter.WriteStartElement("Action");
            //xmlWriter.WriteAttributeString("AssemblyQualifiedName", action.InnerAction.GetType().AssemblyQualifiedName);
            xmlWriter.WriteAttributeString("Type", SerializerHelper.GetActionName(action.InnerAction.GetType()));
            ISerializer actionSerializer = SerializerProvider.GetSerializer(action.GetType());

            actionSerializer.Serialize(xmlWriter, action.InnerAction);
            xmlWriter.WriteEndElement();
            xmlWriter.WriteEndElement();
        }
예제 #3
0
        public void Serialize(System.Xml.XmlWriter xmlWriter, object o)
        {
            List <Profile> items = (List <Profile>)o;

            xmlWriter.WriteStartElement("Profiles");
            foreach (var profile in items)
            {
                xmlWriter.WriteStartElement("Profile");
                xmlWriter.WriteElementString("Name", profile.Name);
                xmlWriter.WriteElementString("Enabled", profile.Enabled.ToString());
                if (profile.EventTrigger != null)
                {
                    ISerializer eventTriggerSerializer = SerializerProvider.GetSerializer(typeof(IEventTrigger));
                    xmlWriter.WriteStartElement("EventTrigger");
                    xmlWriter.WriteStartElement("Trigger");
                    //xmlWriter.WriteAttributeString("AssemblyQualifiedName", profile.EventTrigger.GetType().AssemblyQualifiedName);
                    xmlWriter.WriteAttributeString("Type", SerializerHelper.GetTriggerName(profile.EventTrigger.GetType()));
                    eventTriggerSerializer.Serialize(xmlWriter, profile.EventTrigger);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                }

                //StateTriggers
                xmlWriter.WriteStartElement("StateTriggers");
                ISerializer stateTriggersSerializer = SerializerProvider.GetSerializer(typeof(IStateTrigger));
                foreach (var stateTrigger in profile.StateTriggers)
                {
                    xmlWriter.WriteStartElement("Trigger");
                    //xmlWriter.WriteAttributeString("AssemblyQualifiedName", stateTrigger.GetType().AssemblyQualifiedName);
                    xmlWriter.WriteAttributeString("Type", SerializerHelper.GetTriggerName(stateTrigger.GetType()));
                    stateTriggersSerializer.Serialize(xmlWriter, stateTrigger);
                    xmlWriter.WriteEndElement();
                }
                xmlWriter.WriteFullEndElement();

                //EnterStateAction
                ISerializer actionToExecuteSerializer = SerializerProvider.GetSerializer(profile.ActionToExecute.GetType());
                xmlWriter.WriteStartElement("EnterStateAction");
                xmlWriter.WriteStartElement("Action");
                //xmlWriter.WriteAttributeString("AssemblyQualifiedName", profile.ActionToExecute.GetType().AssemblyQualifiedName);
                xmlWriter.WriteAttributeString("Type", SerializerHelper.GetActionName(profile.ActionToExecute.GetType()));
                actionToExecuteSerializer.Serialize(xmlWriter, profile.ActionToExecute);
                xmlWriter.WriteEndElement();
                xmlWriter.WriteEndElement();

                //ExitStateAction
                ISerializer exitStateActionSerializer = SerializerProvider.GetSerializer(profile.ActionToExecute.GetType());
                if (profile.ActionOnExitState != null)
                {
                    xmlWriter.WriteStartElement("ExitStateAction");
                    xmlWriter.WriteStartElement("Action");
                    //xmlWriter.WriteAttributeString("AssemblyQualifiedName", profile.ActionOnExitState.GetType().AssemblyQualifiedName);
                    xmlWriter.WriteAttributeString("Type", SerializerHelper.GetActionName(profile.ActionOnExitState.GetType()));
                    exitStateActionSerializer.Serialize(xmlWriter, profile.ActionOnExitState);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                }

                xmlWriter.WriteEndElement();
            }
            xmlWriter.WriteEndElement();
        }