XmlWriter.WriteBase64(Byte[], Int32, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Po zastąpieniu w klasie pochodnej koduje określone bajty binarne jako Base64 i zapisuje wynikowy tekst.
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[]
Tablica bajtów do kodowania.
- index
- Int32
Pozycja w buforze wskazująca początek bajtów do zapisu.
- count
- Int32
Liczba bajtów do zapisania.
Wyjątki
buffer
to null
.
index
wartość lub count
jest mniejsza niż zero.
-lub-
Długość buforu minus index
jest mniejsza niż count
.
Metoda XmlWriter została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W tym przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".
Przykłady
W poniższym przykładzie użyto metody do zapisywania WriteBase64 Base64
danych. Dane Base64
są osadzone w elemecie <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
Uwagi
Na przykład bufor bajtów może zawierać zawartość binarną obrazu GIF. To wyraźnie nie byłoby prawidłowe XML. Kodowanie Base64
jest przeznaczone do reprezentowania dowolnych sekwencji bajtów w postaci tekstowej składającej się z 65 znaków US-ASCII ([A-Za-z0-9+/=]), gdzie każdy znak koduje 6 bitów danych binarnych. Aby uzyskać więcej informacji, zobacz Żądania komentarzy (RFC) 1521 znajdujące się w witrynie sieci Web Żądania komentarzy.
Aby uzyskać asynchroniczną wersję tej metody, zobacz WriteBase64Async.