XamlReader.ReadSubtree Метод

Определение

Возвращает объект XamlReader, основанный на текущем объекте XamlReader, где возвращенный объект XamlReader используется для перебора поддерева структуры узлов XAML.

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

Возвращаемое значение

XamlReader

Новый экземпляр средства чтения XAML для данного поддерева.

Комментарии

Этот метод имеет реализацию по умолчанию и возвращает допустимое XamlReaderзначение. Возвращенный XamlReader класс — это внутренний класс, ограничивающий определенные XamlReader действия. Ограничения согласуются с целью чтения только измеренного поддеревого дерева большего источника для набора узлов XAML, а также возврата конца файла или null текущего узла при выходе из поддеревого дерева.

Как правило, необходимо проверить текущий узел с начального Read узла, чтобы определить, требуется ли модуль чтения поддерев. Как проверить это может быть конкретной реализацией; однако не создавайте несколько модулей чтения поддерев для каждого поддеревого дерева. Кроме того, избегайте вызова средства чтения поддерев для определенных вариантов узлов (например, для NamespaceDeclaration), которые не могут содержать поддерев узлов.

Получив модуль чтения поддерев, необходимо вызвать Read его, чтобы получить текущий узел (или вызов Skip для получения следующего узла). При его создании начальное положение узла не получается автоматически.

Средство чтения, полученное путем вызова ReadSubtree из этой реализации по умолчанию, является внутренним классом. Внутренний класс основывает свое поведение на реализации, используемой XamlReader при ReadSubtree вызове. Целью внутреннего класса является перенос Read поведения и общего обхода. Обход остается в предполагаемом поддереве путем отслеживания StartMember/EndMember пар или StartObject/EndObject пар. Он также правильно возвращается false для Read и true для IsEof того, когда модуль чтения находится в конце поддеревого дерева, как определено его точкой входа. Как правило, предполагается, что любой API, XamlReader вызываемого из модуля чтения поддерев, имеет ту же реализацию, что и общая XamlReader , за исключением поведения обхода ограничивающего режима.

Тем не менее, ReadSubtree это виртуальный. Таким образом, конкретная XamlReader реализация может обеспечить поведение, отличающееся от XamlReader поведения внутренней оболочки, и XamlReader реализация может даже отключить функцию чтения поддерев путем возврата NotImplementedException или других исключений.

Применяется к