XamlReader.ReadSubtree Método

Definición

Devuelve un objeto XamlReader que se basa en el objeto XamlReader actual, donde el objeto XamlReader devuelto se usa para recorrer en iteración un subárbol de la estructura de nodos XAML.Returns a XamlReader that is based on the current XamlReader, where the returned XamlReader is used to iterate through a subtree of the XAML node structure.

public:
 virtual System::Xaml::XamlReader ^ ReadSubtree();
public virtual System.Xaml.XamlReader ReadSubtree ();
abstract member ReadSubtree : unit -> System.Xaml.XamlReader
override this.ReadSubtree : unit -> System.Xaml.XamlReader
Public Overridable Function ReadSubtree () As XamlReader

Devoluciones

XamlReader

Nueva instancia de lector XAML para el subárbol.A new XAML reader instance for the subtree.

Comentarios

Este método tiene una implementación predeterminada y devuelve un válido XamlReader .This method has a default implementation and returns a valid XamlReader. El devuelto XamlReader es una clase interna que restringe ciertas XamlReader acciones.The returned XamlReader is an internal class that restricts certain XamlReader actions. Las restricciones son coherentes con el propósito de leer solo un subárbol con dimensiones de un origen mayor para un conjunto de nodos XAML y devolver el final del archivo o null en el nodo actual cuando se sale del subárbol.The restrictions are consistent with the purpose of reading only a dimensioned subtree of a larger source for a XAML node set, and of returning end-of-file or null at the current node when the subtree is exited.

Por lo general, se debe comprobar el nodo actual desde el inicial Read para determinar si se necesita un lector de subárbol.Generally, you should check the current node from the initial Read to determine whether you need a subtree reader. Cómo comprobar esto puede ser específico de la implementación; sin embargo, Evite crear varios lectores de subárbol para cada subárbol.How you check this may be implementation-specific; however, avoid creating multiple subtree readers for every subtree. Además, evite invocar un lector de subárbol para determinados casos de nodo (por ejemplo, para NamespaceDeclaration ) que no pueden contener un subárbol de nodos.In addition, avoid invoking a subtree reader for certain node cases (for example, for NamespaceDeclaration) that cannot contain a subtree of nodes.

Después de obtener un lector de subárbol, debe llamar Read a en él para obtener un nodo actual (o llamar Skip a para obtener un nodo siguiente).After you obtain a subtree reader, you must call Read on it to obtain a current node (or call Skip to obtain a next node). No se obtiene automáticamente una posición de nodo inicial del lector de subárbol cuando se crea.You do not automatically obtain an initial node position from the subtree reader when you create it.

El lector que obtiene llamando a ReadSubtree desde esta implementación predeterminada es una clase interna.The reader you obtain by calling ReadSubtree from this default implementation is an internal class. La clase interna basa su comportamiento en la XamlReader implementación que se utiliza cuando ReadSubtree se llama a.The internal class bases its behavior on the XamlReader implementation that is being used when ReadSubtree is called. El propósito de la clase interna es encapsular Read y el comportamiento transversal en general.The purpose of the internal class is to wrap the Read and general traversal behavior. El recorrido permanece dentro del subárbol deseado realizando un seguimiento de StartMember / EndMember pares o StartObject / EndObject pares.The traversal stays within the intended subtree by keeping track of StartMember/EndMember pairs or StartObject/EndObject pairs. También devuelve correctamente false para Read y true IsEof cuando el lector está al final del subárbol, tal y como se define en su punto de entrada.It also correctly returns false for Read and true for IsEof when the reader is at the end of the subtree, as defined by its entry point. En general, se supone que todas las XamlReader API a las que se llama desde un lector de subárbol tienen la misma implementación que el global, XamlReader excepto el comportamiento de delimitación transversal.In general, you assume that any XamlReader API you call from a subtree reader has the same implementation as the overall XamlReader except for the traversal bounding behavior.

Sin embargo, ReadSubtree es virtual.However, ReadSubtree is virtual. Por lo tanto, una XamlReader implementación específica puede proporcionar un comportamiento que difiere del XamlReader comportamiento del contenedor interno; y una XamlReader implementación de puede incluso deshabilitar la funcionalidad del lector de subárbol devolviendo NotImplementedException u otras excepciones.Therefore, a specific XamlReader implementation can provide behavior that differs from the XamlReader internal wrapper behavior; and a XamlReader implementation can even disable subtree reader functionality by returning NotImplementedException or other exceptions.

Se aplica a