Ejemplo n.º 1
0
 public static void AddNodes(this IContext self, params INode[] nodes)
 {
     foreach (var node in nodes)
     {
         self.AddNode(node);
     }
 }
Ejemplo n.º 2
0
        public override void Deserialize(XmlReader reader, IContext context)
        {
            base.Deserialize(reader, context);

            this.name = reader.ReadElementContentAsString();
            if (!reader.IsEmptyElement)
            {
                var type = reader.GetAttribute("type");
                this.MatchedNode = this.factory.CreateNode(type);
                this.MatchedNode.Deserialize(reader.ReadSubtree(), context);
                context.AddNode(MatchedNode);
            }
        }
Ejemplo n.º 3
0
        private List <INode> ReadNodes(XmlReader reader, IContext context)
        {
            List <INode> nodes = new List <INode>();

            while (reader.ReadToFollowing(NodeTag))
            {
                INode node;
                if (reader.MoveToAttribute(TypeAttr))
                {
                    node = context.EntityFactory.CreateNode(reader.Value);
                    reader.MoveToElement();
                }
                else
                {
                    node = context.EntityFactory.CreateNode();
                }
                node.Deserialize(reader.ReadSubtree(), context);
                nodes.Add(node);
                context.AddNode(node);
            }

            return(nodes);
        }