XmlWriter.WriteBase64(Byte[], Int32, Int32) Methode

Definitie

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.

Van toepassing op