XmlWriter.WriteBase64(Byte[], Int32, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
När de åsidosättas i en härledd klass kodas de angivna binära byteen som Base64 och skriver ut den resulterande texten.
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)
Parametrar
- buffer
- Byte[]
Bytematris som ska kodas.
- index
- Int32
Positionen i bufferten som anger början av byte som ska skrivas.
- count
- Int32
Antalet byte som ska skrivas.
Undantag
buffer är null.
index eller count är mindre än noll.
-eller-
Buffertlängden minus index är mindre än count.
En XmlWriter metod anropades innan en tidigare asynkron åtgärd slutfördes. I det här fallet InvalidOperationException genereras meddelandet "En asynkron åtgärd pågår redan".
Exempel
I följande exempel används WriteBase64 metoden för att skriva Base64 data. Data Base64 bäddas in i ett <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
Kommentarer
Bytebufferten kan till exempel innehålla det binära innehållet i en GIF-bild. Detta skulle helt klart inte vara giltig XML. Kodningen Base64 är utformad för att representera godtyckliga bytesekvenser i ett textformulär som består av 65 US-ASCII tecken ([A-Za-z0-9+/=]) där varje tecken kodar 6 bitar av binära data. Mer information finns i Förfrågningar om kommentarer (RFC) 1521 på webbplatsen Begäran om kommentarer.
Den asynkrona versionen av den här metoden finns i WriteBase64Async.