Partager via


XmlWriter.WriteBase64(Byte[], Int32, Int32) Méthode

Définition

En cas de substitution dans une classe dérivée, code les octets binaires spécifiés au format Base64 et écrit le texte obtenu.

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)

Paramètres

buffer
Byte[]

Tableau d'octets à encoder.

index
Int32

Emplacement dans la mémoire tampon indiquant le début des octets à écrire.

count
Int32

Nombre d'octets à écrire.

Exceptions

buffer a la valeur null.

index ou count est inférieur à zéro.

- ou -

La longueur de la mémoire tampon moins index est inférieure à count.

Une méthode XmlWriter a été appelée avant la fin d’une opération asynchrone précédente. Dans ce cas, l’exception InvalidOperationException est levée avec le message « Une opération asynchrone est déjà en cours ».

Exemples

L’exemple suivant utilise la WriteBase64 méthode pour écrire Base64 des données. Les Base64 données sont incorporées dans un <image> élément.


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

Remarques

Par exemple, la mémoire tampon d’octets peut contenir le contenu binaire d’une image GIF. Il ne s’agit clairement pas d’un code XML valide. L’encodage Base64 est conçu pour représenter des séquences d’octets arbitraires dans une forme de texte composée des 65 caractères US-ASCII ([A-Za-z0-9+/=]) où chaque caractère encode 6 bits des données binaires. Pour plus d’informations, consultez Demandes de commentaires (RFC) 1521 sur le site Web Des demandes de commentaires.

Pour obtenir la version asynchrone de cette méthode, consultez WriteBase64Async.

S’applique à