次の方法で共有


XmlReader.ReadValueChunk(Char[], Int32, Int32) メソッド

定義

XML ドキュメントに埋め込まれたテキストの大きなストリームを読み取ります。

public:
 virtual int ReadValueChunk(cli::array <char> ^ buffer, int index, int count);
public virtual int ReadValueChunk(char[] buffer, int index, int count);
abstract member ReadValueChunk : char[] * int * int -> int
override this.ReadValueChunk : char[] * int * int -> int
Public Overridable Function ReadValueChunk (buffer As Char(), index As Integer, count As Integer) As Integer

パラメーター

buffer
Char[]

テキストの内容が書き込まれるバッファーとして機能する文字の配列。 この値を null にすることはできません。

index
Int32

XmlReaderが結果のコピーを開始できるバッファー内のオフセット。

count
Int32

バッファーにコピーする最大文字数。 コピーされた実際の文字数は、このメソッドから返されます。

戻り値

バッファーに読み込まれる文字数。 値 0 は、それ以上テキスト コンテンツがない場合に返されます。

例外

現在のノードに値がありません (HasValuefalse)。

-又は-

前の非同期操作が完了する前に、 XmlReader メソッドが呼び出されました。 この場合、"非同期操作は既に進行中です" というメッセージで InvalidOperationException がスローされます。

buffer 値は nullです。

バッファーへのインデックス、またはインデックス + カウントが、割り当てられたバッファー サイズよりも大きい。

XmlReader実装では、このメソッドはサポートされていません。

XML データは整形式ではありません。

注釈

このメソッドを使用すると、XML ドキュメントに埋め込まれた非常に大きなテキスト ストリームをストリーミング方式で読み取り、つまり、値全体に 1 つの文字列を割り当てるのではなく、一度に少数の文字を読み取ります。 このメソッドは、値 (HasValuetrue) を持つ任意のノードで呼び出すことができますが、ノード値の実際のストリーミングは、テキスト、空白、および重要な空白ノードで呼び出された場合にのみ発生します。 属性や CDATA ノードなど、その他のノードの種類の値がキャッシュされます。

このメソッドは、 Value プロパティの内容のみを返し、 XmlReaderを移動しません。

このメソッドは、ノード値の指定した文字数 (count) を、指定したオフセット (index) の文字バッファー (buffer) に読み取り、バッファーに書き込まれた文字数を返します。 値の末尾に達すると、 0 が返されます。 値を再度読み取るために再起動することはできません。

XmlReaderプロパティをReadValueChunkする呼び出しの間に、Value プロパティ以外は変更されません。 Value プロパティにアクセスすると、実装に応じて部分的な値 (ReadValueChunkによってまだ返されていない文字を含む) または完全な値が返される場合があります。 System.Xml名前空間のすべてのXmlReader実装は、Value プロパティ実装の部分値を返します。

read メソッドは、 ReadValueChunkの呼び出しの間に呼び出すことができます。 この場合、 XmlReader はストリーム内の次の XmlNodeType に移動し、まだ返されていない文字はすべてスキップされます。

ReadValueChunkが要求された文字数より小さい値を返す場合があります。 たとえば、サロゲート ペアが 127 と 128 の位置に 200 文字の長い値があり、128 文字のバッファーで ReadValueChunk を呼び出した場合、メソッド呼び出しでは、要求された 128 文字ではなく 127 文字が返されます。 その後、サロゲート ペアは次の ReadValueChunk 呼び出しで返されます。 この場合、 ReadValueChunk は要求された 128 文字を返しませんでした。そうすると、バッファーの末尾でサロゲート ペアが不完全になるためです。

このメソッドの非同期バージョンについては、 ReadValueChunkAsyncを参照してください。

適用対象