XmlReader.ReadElementContentAsBase64(Byte[], Int32, Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membaca elemen dan mendekode Base64 konten.
public:
virtual int ReadElementContentAsBase64(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual int ReadElementContentAsBase64(byte[] buffer, int index, int count);
abstract member ReadElementContentAsBase64 : byte[] * int * int -> int
override this.ReadElementContentAsBase64 : byte[] * int * int -> int
Public Overridable Function ReadElementContentAsBase64 (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 Base64 . Data Base64 disematkan dalam <image> elemen .
BinaryWriter digunakan untuk membuat file data biner baru.
public static void Base64DecodeImageFile() {
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 Base64 data.
Console.WriteLine("\r\nReading Base64...");
BinaryWriter bw = new BinaryWriter(outputFile);
while ((readBytes = reader.ReadElementContentAsBase64(buffer, 0, 50))>0) {
bw.Write(buffer, 0, readBytes);
}
outputFile.Close();
}
}
Public Shared Sub Base64DecodeImageFile()
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 Base64 data.
Console.WriteLine(vbCr + vbLf + "Reading Base64...")
Dim bw As New BinaryWriter(outputFile)
readBytes = reader.ReadElementContentAsBase64(buffer, 0, 50)
While (readBytes > 0)
bw.Write(buffer, 0, readBytes)
readBytes = reader.ReadElementContentAsBase64(buffer, 0, 50)
End While
outputFile.Close()
End Using
End Sub
Keterangan
Metode ini membaca konten elemen, mendekodenya menggunakan Base64 pengodean, dan mengembalikan byte biner yang didekode (misalnya, gambar GIF yang dikodekan sebaris Base64) ke dalam buffer. Untuk informasi selengkapnya, lihat RFC 1521, "MIME (Ekstensi Surat Internet Multiguna) Bagian Satu: Mekanisme untuk Menentukan dan Menjelaskan Format Badan Pesan Internet". Anda dapat memperoleh RFC dari situs web Permintaan Komentar.
ReadElementContentAsBase64 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 ReadContentAsBase64 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 ReadElementContentAsBase64Async.