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

Definice

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, které se má zakódovat.

index
Int32

Pozice ve vyrovnávací paměti označující začátek bajtů, které se mají zapisovat.

count
Int32

Počet bajtů k zápisu.

Výjimky

buffer je null.

index nebo count je menší než nula.

nebo

Délka vyrovnávací paměti je menší index než count.

Před XmlWriter dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace už probíhá".

Příklady

Následující příklad používá metodu WriteBase64 k zápisu Base64 dat. Data Base64 jsou vložena 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

Například vyrovnávací paměť bajtů může 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 bajtovou sekvenci v textové podobě, která se skládá z 65 US-ASCII znaků ([A-Za-z0-9+/=]), kde každý znak kóduje 6 bitů binárních dat. Další informace naleznete v tématu Žádosti o komentáře (RFC) 1521 umístěný na webu Požadavek pro komentáře.

Asynchronní verzi této metody naleznete v tématu WriteBase64Async.

Platí pro