次の方法で共有


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

戻り値

サブツリーの新しい XAML リーダー インスタンス。

注釈

このメソッドには既定の実装があり、有効 XamlReaderな を返します。 返される XamlReader は、特定 XamlReader のアクションを制限する内部クラスです。 この制限は、XAML ノード セットの大きなソースのディメンション付きサブツリーのみを読み取り、サブツリーが終了したときにファイルの終わりまたは null 現在のノードで返す目的と一致します。

一般に、サブツリー リーダーが必要かどうかを判断するには、最初 Read から現在のノードを確認する必要があります。 これを確認する方法は実装固有である可能性があります。ただし、すべてのサブツリーに対して複数のサブツリー リーダーを作成することは避けてください。 さらに、ノードのサブツリーを含むことができない特定のノード ケース (たとえば、 NamespaceDeclarationなど) に対してサブツリー リーダーを呼び出さないようにします。

サブツリー リーダーを取得した後は、 を呼び出 Read して現在のノードを取得する (または を呼び出 Skip して次のノードを取得する) 必要があります。 作成時にサブツリー リーダーから最初のノード位置を自動的に取得することはありません。

この既定の実装から を呼び出 ReadSubtree して取得するリーダーは、内部クラスです。 内部クラスは、 が呼び出されたときにReadSubtree使用される実装に基XamlReaderづいて動作します。 内部クラスの目的は、 と 一般的なトラバーサル動作を Read ラップすることです。 トラバーサルは、ペアまたはEndObjectStartObject/ペアを追跡することで、目的のStartMember/EndMemberサブツリー内にとどまります。 また、エントリ ポイントで定義されているように、リーダーがサブツリーの末尾にあると きの と も正しく返 falseReadtrueIsEof されます。 一般に、サブツリー リーダーから呼び出す XamlReader API は、トラバーサル境界動作を除き、 全体 XamlReader と同じ実装を持つものとします。

ただし、 ReadSubtree は仮想です。 したがって、特定 XamlReader の実装では、内部ラッパーの動作とは異なる動作を XamlReader 提供できます。また、 XamlReader 実装では、 またはその他の例外を返すことによってサブツリー リーダー機能を NotImplementedException 無効にすることもできます。

適用対象