XmlWriter.WriteBase64(Byte[], Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se invalida en una clase derivada, codifica los bytes binarios especificados en Base64 y escribe el texto resultante.
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)
Parámetros
- buffer
- Byte[]
Matriz de bytes que se va a codificar.
- index
- Int32
Posición en el búfer que indica el inicio de los bytes que se van a escribir.
- count
- Int32
Número de bytes que se van a escribir.
Excepciones
buffer
es null
.
index
o count
es menor que cero.
o bien
La longitud del búfer menos index
es menor que count
.
Se llamó un método XmlWriter antes de que se termine una operación asincrónica anterior. En este caso, se genera InvalidOperationException con el mensaje “Ya hay una operación asincrónica en curso”.
Ejemplos
En el ejemplo siguiente se usa el WriteBase64 método para escribir Base64
datos. Los Base64
datos se incrustan dentro de un <image>
elemento .
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
Comentarios
Por ejemplo, el búfer de bytes puede contener el contenido binario de una imagen GIF. Esto claramente no sería XML válido. La Base64
codificación está diseñada para representar secuencias de bytes arbitrarias en un formato de texto formado por los 65 caracteres US-ASCII ([A-Za-z0-9+/=]) donde cada carácter codifica 6 bits de los datos binarios. Para obtener más información, vea Solicitudes de comentarios (RFC) 1521 que se encuentra en el sitio web solicitud de comentarios.
Para obtener la versión asincrónica de este método, vea WriteBase64Async.