internal ElementNode(string name, string prefix, TraceXPathNavigator.ElementNode parent, string xmlns) : base(XPathNodeType.Element, parent)
 {
     this.childNodes = new List <TraceXPathNavigator.TraceNode>();
     this.attributes = new List <TraceXPathNavigator.AttributeNode>();
     this.name       = name;
     this.prefix     = prefix;
     this.xmlns      = xmlns;
 }
 internal void Reset()
 {
     this.attributeIndex = 0;
     this.elementIndex   = 0;
     this.movedToText    = false;
     if (this.childNodes != null)
     {
         foreach (TraceXPathNavigator.TraceNode node in this.childNodes)
         {
             if (node.NodeType == XPathNodeType.Element)
             {
                 TraceXPathNavigator.ElementNode node2 = node as TraceXPathNavigator.ElementNode;
                 if (node2 != null)
                 {
                     node2.Reset();
                 }
             }
         }
     }
 }
            internal IEnumerable <TraceXPathNavigator.ElementNode> FindSubnodes(string[] headersPath)
            {
                if (headersPath == null)
                {
                    throw new ArgumentNullException("headersPath");
                }
                TraceXPathNavigator.ElementNode iteratorVariable0 = this;
                if (string.CompareOrdinal(iteratorVariable0.name, headersPath[0]) != 0)
                {
                    iteratorVariable0 = null;
                }
                int index = 0;

                while ((iteratorVariable0 != null) && (++index < headersPath.Length))
                {
                    TraceXPathNavigator.ElementNode iteratorVariable2 = null;
                    if (iteratorVariable0.childNodes != null)
                    {
                        foreach (TraceXPathNavigator.TraceNode iteratorVariable3 in iteratorVariable0.childNodes)
                        {
                            if (iteratorVariable3.NodeType == XPathNodeType.Element)
                            {
                                TraceXPathNavigator.ElementNode iteratorVariable4 = iteratorVariable3 as TraceXPathNavigator.ElementNode;
                                if ((iteratorVariable4 != null) && (string.CompareOrdinal(iteratorVariable4.name, headersPath[index]) == 0))
                                {
                                    if (headersPath.Length == (index + 1))
                                    {
                                        yield return(iteratorVariable4);
                                    }
                                    else
                                    {
                                        iteratorVariable2 = iteratorVariable4;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    iteratorVariable0 = iteratorVariable2;
                }
            }
 protected TraceNode(XPathNodeType nodeType, TraceXPathNavigator.ElementNode parent)
 {
     this.nodeType = nodeType;
     this.parent = parent;
 }
 protected TraceNode(XPathNodeType nodeType, TraceXPathNavigator.ElementNode parent)
 {
     this.nodeType = nodeType;
     this.parent   = parent;
 }
 internal ProcessingInstructionNode(string name, string text, TraceXPathNavigator.ElementNode parent) : base(XPathNodeType.ProcessingInstruction, parent)
 {
     this.name = name;
     this.text = text;
 }
 internal CommentNode(string text, TraceXPathNavigator.ElementNode parent) : base(XPathNodeType.Comment, parent)
 {
     this.nodeValue = text;
 }