XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) Metode

Definisi

Membaca elemen dan mendekode BinHex konten.

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

Parameter

buffer
Byte[]

Buffer tempat menyalin teks yang dihasilkan. Nilai ini tidak boleh null.

index
Int32

Offset ke dalam buffer tempat untuk mulai menyalin hasilnya.

count
Int32

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

Mengembalikan

Jumlah byte yang ditulis ke buffer.

Pengecualian

Nilai buffer adalah null.

Simpul saat ini bukan simpul elemen.

-atau-

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

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

Implementasi XmlReader tidak mendukung metode ini.

Elemen berisi konten campuran.

Isi tidak dapat dikonversi ke tipe yang diminta.

Contoh

Contoh berikut membaca gambar yang dikodekan sebaris BinHex . Data BinHex disematkan dalam <image> elemen . BinaryWriter digunakan untuk membuat file data biner baru.

public static void BinHexDecodeImageFile() {

  byte[] buffer = new byte[1000];
  int readBytes = 0;

  using (XmlReader reader = XmlReader.Create("output.xml")) {
                    
        FileStream outputFile = new FileStream(@"C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate,
                                                                      FileAccess.Write, FileShare.Write);
        // Read to the image element.
        reader.ReadToFollowing("image");
        // Read the BinHex data.
        Console.WriteLine("\r\nReading BinHex...");
        BinaryWriter bw = new BinaryWriter(outputFile);
        while ((readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50))>0) {
            bw.Write(buffer, 0, readBytes);
        }
        outputFile.Close();
  }
}
Public Shared Sub BinHexDecodeImageFile() 
    
    Dim buffer(999) As Byte
    Dim readBytes As Integer = 0
    
    Using reader As XmlReader = XmlReader.Create("output.xml")
            
            Dim outputFile As New FileStream("C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
            ' Read to the image element.
            reader.ReadToFollowing("image")
            ' Read the BinHex data.
            Console.WriteLine(vbCr + vbLf + "Reading BinHex...")
            Dim bw As New BinaryWriter(outputFile)
            readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
            While (readBytes > 0)
                bw.Write(buffer, 0, readBytes)
                readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
            End While
            outputFile.Close()
        
    End Using

End Sub

Keterangan

Metode ini membaca konten elemen, mendekodenya menggunakan BinHex pengodean, dan mengembalikan byte biner yang didekode (misalnya, gambar GIF yang dikodekan sebaris BinHex) ke dalam buffer.

Metode ini hanya dapat membaca elemen konten sederhana. Elemen dapat berisi teks, spasi kosong, spasi kosong yang signifikan, bagian CDATA, komentar, dan instruksi pemrosesan. Ini juga dapat berisi referensi entitas, yang secara otomatis diperluas. Elemen tidak boleh memiliki elemen turunan.

Metode ini sangat mirip ReadContentAsBinHex dengan metode kecuali hanya dapat dipanggil pada jenis node elemen.

count Jika nilai lebih tinggi dari jumlah byte dalam dokumen, atau jika sama dengan jumlah byte dalam dokumen, XmlReader membaca semua byte yang tersisa dalam dokumen dan mengembalikan jumlah byte yang dibaca. Panggilan metode berikutnya XmlReader mengembalikan nol dan memindahkan pembaca ke simpul mengikuti EndElement.

Jika Anda memanggil Read sebelum semua konten elemen dikonsumsi, pembaca mungkin berulah seolah-olah konten pertama digunakan dan kemudian Read metode dipanggil. Ini berarti bahwa pembaca akan membaca semua teks sampai elemen akhir ditemui. Kemudian akan membaca simpul tag akhir, membaca simpul berikutnya, dan kemudian memposisikan dirinya pada simpul berikutnya.

Untuk versi asinkron dari metode ini, lihat ReadElementContentAsBinHexAsync.

Berlaku untuk

Lihat juga