Exemplo n.º 1
0
        public static CommandStack Deserialize(string XMLString)
        {
            CommandStack tr = new CommandStack();

            var xe = XElement.Parse(XMLString);

            if (xe.Name != "CommandStack")
            {
                return(null);
            }

            int count = int.Parse((xe.Nodes().First((x) => (x as XElement).Name == "Count") as XElement).Value);

            foreach (var node in xe.Nodes())
            {
                if ((node as XElement).Name == "Count")
                {
                    continue;
                }
                --count;
                tr.Push(UndoSerializer.Deserialize((xe.Nodes().First((x) => (x as XElement).Name == "c" + count.ToString()) as XElement).FirstNode.ToString()));
            }

            return(tr);
        }
Exemplo n.º 2
0
        public XElement Serialize()
        {
            var tr = new XElement("CommandStack");

            tr.Add(new XElement("Count", UndoStack.Count));
            int i = 0;

            foreach (var undoable in UndoStack)
            {
                tr.Add(new XElement("c" + i.ToString(), UndoSerializer.Serialize(undoable)));
                i++;
            }

            return(tr);
        }