XmlWriter.WriteBase64 Method
When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the resulting text.
Assembly: System.Xml (in System.Xml.dll)
Parameters
- buffer
- Type: System.Byte[]
Byte array to encode.
- index
- Type: System.Int32
The position in the buffer indicating the start of the bytes to write.
- count
- Type: System.Int32
The number of bytes to write.
| Exception | Condition |
|---|---|
| ArgumentNullException | buffer is null. |
| ArgumentOutOfRangeException | index or count is less than zero. -or- The buffer length minus index is less than count. |
| InvalidOperationException | An XmlWriter method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.” |
For example, the byte buffer may contain the binary contents of a GIF image. This clearly would not be valid XML. The Base64 encoding is designed to represent arbitrary byte sequences in a text form comprised of the 65 US-ASCII characters ([A-Za-z0-9+/=]) where each character encodes 6 bits of the binary data. For more information, see Requests for Comments (RFC) 1521 located on the Request for Comments Web site at http://www.rfc-editor.org/.
For the asynchronous version of this method, see WriteBase64Async.
The following example uses the WriteBase64 method to write Base64 data. The Base64 data is embedded within an <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(); } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.