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

Definition

Wenn sie in einer abgeleiteten Klasse überschrieben werden, codiert die angegebenen Binärbytes als Base64 und schreibt den resultierenden Text aus.

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)

Parameter

buffer
Byte[]

Bytearray, das codiert werden soll.

index
Int32

Die Position im Puffer, die den Anfang der zu schreibenden Bytes angibt.

count
Int32

Die Anzahl der zu schreibenden Bytes.

Ausnahmen

buffer ist null.

index oder count ist kleiner als Null.

-oder-

Die Pufferlänge minus index ist kleiner als count.

Eine XmlWriter Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.

Beispiele

Im folgenden Beispiel wird die WriteBase64 Methode zum Schreiben Base64 von Daten verwendet. Die Base64 Daten werden in ein <image> Element eingebettet.


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

Hinweise

Beispielsweise kann der Bytepuffer den binären Inhalt eines GIF-Bilds enthalten. Dies wäre eindeutig kein gültiger XML-Code. Die Base64 Codierung ist so konzipiert, dass beliebige Bytesequenzen in einer Textform dargestellt werden, die aus den 65 US-ASCII Zeichen ([A-Za-z0-9+/=]) besteht, wobei jedes Zeichen 6 Bits der Binärdaten codiert. Weitere Informationen finden Sie unter Anforderungen für Kommentare (RFC) 1521 auf der Website "Request for Comments".

Die asynchrone Version dieser Methode finden Sie unter WriteBase64Async.

Gilt für: