Implements XPathNavigator to navigate a graph of generic objects.
Note that object's properties and contents of some collections will be resolved only once during tree traversal. This means that if navigator has visited some object then it will remember the state of this object as it was on the moment of first visit. Any change to the object's state will be seen only to another navigator, either created after this change was made, or which simply was not visiting this object yet.
Inheritance: System.Xml.XPath.XPathNavigator
Ejemplo n.º 1
0
 /// <summary>
 /// Creates a new navigator positioned at the same node as other navigator.
 /// </summary>
 /// <param name="other">Navigator to be copied</param>
 private ObjectXPathNavigator(ObjectXPathNavigator other)
 {
     if (other._context.DetectLoops)
     {
         _navigationStack = new Stack();
     }
     MoveTo(other);
 }
 /// <summary>
 /// Creates a new navigator positioned at the same node as other navigator.
 /// </summary>
 /// <param name="other">Navigator to be copied</param>
 private ObjectXPathNavigator( ObjectXPathNavigator other )
 {
     if( other._context.DetectLoops )
         _navigationStack = new Stack();
     MoveTo( other );
 }
 /// <summary>
 /// Creates a new <see cref="LoopDetectionEventArgs"/> instance.
 /// </summary>
 /// <param name="navigator"><see cref="ObjectXPathNavigator"/> Navigator object</param>
 /// <param name="node"><see cref="Node"/> Node that caused loop appearance</param>
 public LoopDetectionEventArgs( ObjectXPathNavigator navigator, Node node )
 {
     _navigator = navigator;
     _node = node;
     _ignoreLoop = false;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Creates a new <see cref="LoopDetectionEventArgs"/> instance.
 /// </summary>
 /// <param name="navigator"><see cref="ObjectXPathNavigator"/> Navigator object</param>
 /// <param name="node"><see cref="Node"/> Node that caused loop appearance</param>
 public LoopDetectionEventArgs(ObjectXPathNavigator navigator, Node node)
 {
     _navigator  = navigator;
     _node       = node;
     _ignoreLoop = false;
 }