英語で読む

次の方法で共有


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

定義

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

C#
public virtual int ReadValueChunk (char[] buffer, int index, int count);

パラメーター

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0