public virtual bool VisitObjectProperty( int startPropertyIndex, string propertyName, int propertyIndex ) { try { _path.Add( new Parent( propertyName, propertyIndex ) ); return Visit(); } finally { _path.RemoveAt( _path.Count - 1 ); } }