示例#1
0
        public virtual void VisitSelectionNode <T>(TContext context, ISelectionNode <T> node)
            where T : class
        {
            VisitAlphaMemoryNode(context, node.MemoryNode);

            foreach (var childNode in node.GetChildNodes <INode>())
            {
                childNode.Accept(this, context);
            }
        }
        public override void VisitSelectionNode <T>(GraphContext context, ISelectionNode <T> node)
        {
            var nodeInfo = new Node(Interlocked.Increment(ref _id), node, typeof(T), "selection");

            context.Add(nodeInfo);
            context.Link(nodeInfo, new Node(-1, node.MemoryNode, typeof(T), ""));

            foreach (var childNode in node.GetChildNodes <INode>())
            {
                context.Link(nodeInfo, new Node(-1, childNode, typeof(T), ""));
            }

            base.VisitSelectionNode(context, node);
        }