XmlWriter.WriteBase64(Byte[], Int32, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Při přepsání v odvozené třídě kóduje zadané binární bajty jako Base64 a zapíše výsledný text.
public:
abstract void WriteBase64(cli::array <System::Byte> ^ buffer, int index, int count);
public abstract void WriteBase64 (byte[] buffer, int index, int count);
abstract member WriteBase64 : byte[] * int * int -> unit
Public MustOverride Sub WriteBase64 (buffer As Byte(), index As Integer, count As Integer)
Parametry
- buffer
- Byte[]
Bajtové pole pro kódování
- index
- Int32
Pozice ve vyrovnávací paměti označující začátek bajtů, které se mají zapisovat.
- count
- Int32
Počet bajtů, které mají být zapsány.
Výjimky
buffer
je null
.
index
nebo count
je menší než nula.
-nebo-
Délka vyrovnávací paměti je index
menší než count
.
XmlWriter Před dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace již probíhá".
Příklady
Následující příklad používá metodu k zápisu WriteBase64 Base64
dat. Data jsou vložena Base64
do elementu <image>
.
public static void Base64EncodeImageFile() {
int bufferSize = 1000;
byte[] buffer = new byte[bufferSize];
int readBytes = 0;
using (XmlWriter writer = XmlWriter.Create("output.xml")) {
FileStream inputFile = new FileStream(@"C:\artFiles\sunset.jpg",
FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read);
writer.WriteStartDocument();
writer.WriteStartElement("image");
BinaryReader br = new BinaryReader(inputFile);
Console.WriteLine("\r\nWriting Base64 data...");
do {
readBytes = br.Read(buffer, 0, bufferSize);
writer.WriteBase64(buffer, 0, readBytes);
} while (bufferSize <= readBytes);
br.Close();
writer.WriteEndElement();// </image>
writer.WriteEndDocument();
}
}
Public Shared Sub Base64EncodeImageFile()
Dim bufferSize As Integer = 1000
Dim buffer(bufferSize) As Byte
Dim readBytes As Integer = 0
Using writer As XmlWriter = XmlWriter.Create("output.xml")
Dim inputFile As New FileStream("C:\artFiles\sunset.jpg", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)
writer.WriteStartDocument()
writer.WriteStartElement("image")
Dim br As New BinaryReader(inputFile)
Console.WriteLine(vbCr + vbLf + "Writing Base64 data...")
Do
readBytes = br.Read(buffer, 0, bufferSize)
writer.WriteBase64(buffer, 0, readBytes)
Loop While bufferSize <= readBytes
br.Close()
writer.WriteEndElement() ' </image>
writer.WriteEndDocument()
End Using
End Sub
Poznámky
Vyrovnávací paměť bajtů může například obsahovat binární obsah obrázku GIF. To by jasně nebylo platné XML. Kódování Base64
je navržené tak, aby představovalo libovolnou posloupnost bajtů v textové podobě, která se skládá z 65 znaků US-ASCII ([A-Za-z0-9+/=]), kde každý znak kóduje 6 bitů binárních dat. Další informace naleznete v části Žádosti o komentáře (RFC) 1521 umístěné na webu Žádost o komentáře.
Asynchronní verze této metody naleznete v tématu WriteBase64Async.