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

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

戻り値

Int32

バッファー内へ読み取られた文字数。 それ以上テキストの内容がない場合は、値として 0 が返されます。

例外

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

  • または -

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。

buffer 値は null です。

バッファー内のインデックス、またはインデックスとカウントの合計値が、割り当てられているバッファー サイズを超えています。

XmlReader 実装が、このメソッドをサポートしていません。

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

注釈

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

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

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

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

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

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

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

適用対象