XmlWriter.WriteBase64(Byte[], Int32, Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer deze wordt overschreven in een afgeleide klasse, codeert u de opgegeven binaire bytes als Base64 en schrijft u de resulterende tekst uit.
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)
Parameters
- buffer
- Byte[]
Bytematrix om te coderen.
- index
- Int32
De positie in de buffer die het begin van de te schrijven bytes aangeeft.
- count
- Int32
Het aantal te schrijven bytes.
Uitzonderingen
buffer is null.
index of count kleiner is dan nul.
– of –
De bufferlengte min index is kleiner dan count.
Er XmlWriter is een methode aangeroepen voordat een vorige asynchrone bewerking is voltooid. In dit geval InvalidOperationException wordt het bericht 'Er wordt al een asynchrone bewerking uitgevoerd'.
Voorbeelden
In het volgende voorbeeld wordt de WriteBase64 methode gebruikt om gegevens te schrijven Base64 . De Base64 gegevens worden ingesloten in een <image> element.
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
Opmerkingen
De bytebuffer kan bijvoorbeeld de binaire inhoud van een GIF-afbeelding bevatten. Dit zou duidelijk geen geldige XML zijn. De Base64 codering is ontworpen om willekeurige bytereeksen in een tekstvorm te vertegenwoordigen die bestaan uit de 65 US-ASCII tekens ([A-Za-z0-9+/=]), waarbij elk teken 6 bits van de binaire gegevens codeert. Zie Aanvragen voor opmerkingen (RFC) 1521 op de website Request for Comments voor meer informatie.
Zie voor de asynchrone versie van deze methode WriteBase64Async.