XmlWriter.WriteBase64(Byte[], Int32, Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen ikili baytları Base64 olarak kodlar ve sonuçta elde edilen metni yazar.
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)
Parametreler
- buffer
- Byte[]
Kodlanacak bayt dizisi.
- index
- Int32
Yazacak baytların başlangıcını gösteren arabellekteki konum.
- count
- Int32
Yazılacak bayt sayısı.
Özel durumlar
buffer
, null
değeridir.
index
veya count
sıfırdan küçüktür.
-veya-
Arabellek uzunluğu eksi index
değeri değerinden count
küçüktür.
Önceki XmlWriter bir zaman uyumsuz işlem tamamlanmadan önce bir yöntem çağrıldı. Bu durumda, InvalidOperationException "Zaman uyumsuz bir işlem zaten devam ediyor" iletisiyle oluşturulur.
Örnekler
Aşağıdaki örnek, veri yazmak Base64
için yöntemini kullanırWriteBase64. Veriler Base64
bir <image>
öğenin içine eklenir.
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
Açıklamalar
Örneğin, bayt arabelleği bir GIF görüntüsünün ikili içeriğini içerebilir. Bu açıkça geçerli XML olmayacaktır. Kodlama, Base64
her karakterin ikili verilerin 6 bitini kodladığı 65 US-ASCII karakterinden ([A-Za-z0-9+/=]) oluşan bir metin biçiminde rastgele bayt dizilerini temsil etmek için tasarlanmıştır. Daha fazla bilgi için bkz. Açıklama İsteği Web sitesinde bulunan Açıklama İstekleri (RFC) 1521.
Bu yöntemin zaman uyumsuz sürümü için bkz WriteBase64Async. .