XmlReader.ReadValueChunk(Char[], Int32, Int32) XmlReader.ReadValueChunk(Char[], Int32, Int32) XmlReader.ReadValueChunk(Char[], Int32, Int32) XmlReader.ReadValueChunk(Char[], Int32, Int32) Method

定義

XML ドキュメントに埋め込まれたテキストの大量のストリームを読み込みます。Reads large streams of text embedded in an XML document.

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[]

テキストの内容が書き込まれるバッファーとして機能する文字の配列。The array of characters that serves as the buffer to which the text contents are written. この値を null にすることはできません。This value cannot be null.

index
Int32 Int32 Int32 Int32

XmlReader が結果のコピーを開始できる、バッファー内のオフセット。The offset within the buffer where the XmlReader can start to copy the results.

count
Int32 Int32 Int32 Int32

バッファーにコピーする最大文字数。The maximum number of characters to copy into the buffer. コピーされた実際の文字数は、このメソッドから返されます。The actual number of characters copied is returned from this method.

戻り値

バッファー内へ読み取られた文字数。The number of characters read into the buffer. それ以上テキストの内容がない場合は、値として 0 が返されます。The value zero is returned when there is no more text content.

例外

現在のノードに値がありません (HasValuefalse)。The current node does not have a value (HasValue is false).

または-or- 先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

buffer 値は null です。The buffer value is null.

バッファー内のインデックス、またはインデックスとカウントの合計値が、割り当てられているバッファー サイズを超えています。The index into the buffer, or index + count is larger than the allocated buffer size.

XmlReader 実装が、このメソッドをサポートしていません。The XmlReader implementation does not support this method.

XML データは、整形式ではありません。The XML data is not well-formed.

注釈

このメソッドは、値全体に対して 1 つの文字列を割り当てる代わりに、一度に文字の数が少ないのは、ストリーミング方式で、XML ドキュメントに埋め込まれたテキストの非常に大量のストリームの読み取りを使用します。This method enables reading of very large streams of text embedded in an XML document in a streaming fashion, that is, a small number of characters at a time instead of allocating a single string for the whole value. 値を持つ任意のノードでこのメソッドを呼び出すことができます (HasValuetrue) ノードの値の実際のストリーミング、テキスト、空白および有意の空白ノードで呼び出されたときにのみ発生しますが、します。This method can be called on any node that has a value (HasValue is true), however actual streaming of the node value only occurs when called on a text, white space and significant white space nodes. 属性および CDATA ノードを含むその他のノード型の値がキャッシュされます。Other node type values are cached, including attributes and CDATA nodes.

このメソッドの内容のみを返します、Valueプロパティ移動しないと、XmlReaderします。This method returns only the content of the Value property and does not move the XmlReader.

このメソッドは、指定した文字数を読み取ります (count) の文字バッファーにノードの値 (buffer)、指定したオフセット (index) し、バッファーに書き込まれた文字数を返します。This method reads the specified number of characters (count) of the node value into a character buffer (buffer) at a specified offset (index) and returns the number of characters written to the buffer. 返します、0値の末尾に到達したとき。It returns the 0 when it has reached the end of the value. 値を使用してもう一度読み取ることを再開できません。It cannot be restarted to read through the value again.

呼び出しの間にReadValueChunkXmlReaderプロパティは使用しないで変更を除き、Valueプロパティ。In between calls to ReadValueChunk the XmlReader properties do no change except for the Value property. ときに、Valueプロパティへのアクセスが部分的な値を返すか、(によって返されるされていない文字を含むReadValueChunk) または実装によって完全な値。When the Value property is accessed it may either return a partial value (with characters not yet returned by ReadValueChunk) or a full value depending on the implementation. すべてのXmlReaderでの実装、System.Xml名前空間の部分の値を返す、Valueプロパティの実装。All the XmlReader implementations in the System.Xml namespace return a partial value for the Value property implementation.

任意の読み取り呼び出しの間にメソッドを呼び出すことがReadValueChunkします。Any Read method can be called in between calls to ReadValueChunk. このような場合、XmlReaderへ移動XmlNodeTypeストリームで返されるされていない任意の文字はスキップされます。If this occurs, the XmlReader moves to the next XmlNodeType in the stream and any characters not yet returned are skipped.

ケースがある可能性がありますとReadValueChunk要求された文字数より小さいを返します。There may be a case when ReadValueChunk returns less than the requested number of characters. たとえば、127 と 128 の位置にあるサロゲート ペアの 200 文字の値をしたし、するというReadValueChunk128 文字バッファーでメソッドの呼び出しは、要求された 128 ではなく、127 文字を返します。For example, if you had a 200-character long value with a surrogate pair at positions 127 and 128 and you called ReadValueChunk with a 128-character buffer, the method call would return 127 characters instead of the requested 128. 次のサロゲート ペアから返されるReadValueChunk呼び出します。The surrogate pair would then be returned in the next ReadValueChunk call. この場合、ReadValueChunk行うこれが発生した場合、バッファーの最後に、不完全なサロゲート ペアがあるために、要求された 128 文字を返しませんでした。In this case, ReadValueChunk did not return the requested 128 characters because doing so would have resulted in an incomplete surrogate pair at the end of the buffer.

このメソッドの非同期バージョンを参照してください。ReadValueChunkAsyncします。For the asynchronous version of this method, see ReadValueChunkAsync.

適用対象