Share via


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

Definisi

Membaca aliran besar teks yang disematkan dalam dokumen 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

Parameter

buffer
Char[]

Array karakter yang berfungsi sebagai buffer tempat konten teks ditulis. Nilai ini tidak boleh null.

index
Int32

Offset dalam buffer tempat XmlReader dapat mulai menyalin hasilnya.

count
Int32

Jumlah maksimum karakter yang akan disalin ke dalam buffer. Jumlah karakter aktual yang disalin dikembalikan dari metode ini.

Mengembalikan

Jumlah karakter yang dibaca ke dalam buffer. Nilai nol dikembalikan ketika tidak ada lagi konten teks.

Pengecualian

Simpul saat ini tidak memiliki nilai (HasValue adalah false).

-atau-

Metode XmlReader dipanggil sebelum operasi asinkron sebelumnya selesai. Dalam hal ini, InvalidOperationException dilemparkan dengan pesan "Operasi asinkron sudah berlangsung."

Nilai buffer adalah null.

Indeks ke dalam buffer, atau indeks + hitungan lebih besar dari ukuran buffer yang dialokasikan.

Implementasi XmlReader tidak mendukung metode ini.

Data XML tidak terbentuk dengan baik.

Keterangan

Metode ini memungkinkan pembacaan aliran teks yang sangat besar yang disematkan dalam dokumen XML dengan cara streaming, yaitu, sejumlah kecil karakter pada satu waktu alih-alih mengalokasikan string tunggal untuk seluruh nilai. Metode ini dapat dipanggil pada simpul apa pun yang memiliki nilai (HasValue adalah true), namun streaming aktual dari nilai simpul hanya terjadi ketika dipanggil pada teks, spasi kosong, dan simpul spasi putih yang signifikan. Nilai jenis node lainnya di-cache, termasuk atribut dan node CDATA.

Metode ini hanya mengembalikan konten Value properti dan tidak memindahkan XmlReader.

Metode ini membaca jumlah karakter yang ditentukan (count) dari nilai simpul ke dalam buffer karakter (buffer) pada offset tertentu (index) dan mengembalikan jumlah karakter yang ditulis ke buffer. Ini mengembalikan 0 ketika telah mencapai akhir nilai. Ini tidak dapat dimulai ulang untuk membaca nilai lagi.

Di antara panggilan ke ReadValueChunkXmlReader properti tidak melakukan perubahan kecuali untuk Value properti . Value Ketika properti diakses, properti dapat mengembalikan nilai parsial (dengan karakter yang belum dikembalikan oleh ReadValueChunk) atau nilai penuh tergantung pada implementasinya. XmlReader Semua implementasi di System.Xml namespace mengembalikan nilai parsial untuk Value implementasi properti.

Metode Baca apa pun dapat dipanggil di antara panggilan ke ReadValueChunk. Jika ini terjadi, pemindahan XmlReader ke berikutnya XmlNodeType di aliran dan karakter apa pun yang belum dikembalikan akan dilewati.

Mungkin ada kasus ketika ReadValueChunk mengembalikan kurang dari jumlah karakter yang diminta. Misalnya, jika Anda memiliki nilai panjang 200 karakter dengan pasangan pengganti pada posisi 127 dan 128 dan Anda memanggil ReadValueChunk dengan buffer 128 karakter, panggilan metode akan mengembalikan 127 karakter alih-alih 128 yang diminta. Pasangan pengganti kemudian akan dikembalikan dalam panggilan berikutnya ReadValueChunk . Dalam hal ini, ReadValueChunk tidak mengembalikan 128 karakter yang diminta karena melakukannya akan mengakibatkan pasangan pengganti yang tidak lengkap di akhir buffer.

Untuk versi asinkron metode ini, lihat ReadValueChunkAsync.

Berlaku untuk