XmlReader.ReadElementContentAsBinHex(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.
öğesini okur ve içeriğin kodunu BinHex
çözer.
public:
virtual int ReadElementContentAsBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual int ReadElementContentAsBinHex (byte[] buffer, int index, int count);
abstract member ReadElementContentAsBinHex : byte[] * int * int -> int
override this.ReadElementContentAsBinHex : byte[] * int * int -> int
Public Overridable Function ReadElementContentAsBinHex (buffer As Byte(), index As Integer, count As Integer) As Integer
Parametreler
- buffer
- Byte[]
Sonuçta elde edilen metnin kopyalandığı arabellek. Bu değer olamaz null
.
- index
- Int32
Sonucu kopyalamaya başlanacak arabelleğe uzaklık.
- count
- Int32
Arabelleğe kopyalanacak en fazla bayt sayısı. Kopyalanan gerçek bayt sayısı bu yöntemden döndürülür.
Döndürülenler
Arabelleğe yazılan bayt sayısı.
Özel durumlar
buffer
değeri null
olur.
Geçerli düğüm bir öğe düğümü değil.
-veya-
Önceki XmlReader 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.
Arabelleğe veya dizin + sayım dizinine ayrılan arabellek boyutundan daha büyük.
Uygulama XmlReader bu yöntemi desteklemiyor.
öğesi karma içerik içeriyor.
İçerik istenen türe dönüştürülemez.
Örnekler
Aşağıdaki örnek, satır içi BinHex
kodlanmış bir görüntüyü okur. Veriler BinHex
öğesinin <image>
içine eklenir. yeni BinaryWriter bir ikili veri dosyası oluşturmak için kullanılır.
public static void BinHexDecodeImageFile() {
byte[] buffer = new byte[1000];
int readBytes = 0;
using (XmlReader reader = XmlReader.Create("output.xml")) {
FileStream outputFile = new FileStream(@"C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate,
FileAccess.Write, FileShare.Write);
// Read to the image element.
reader.ReadToFollowing("image");
// Read the BinHex data.
Console.WriteLine("\r\nReading BinHex...");
BinaryWriter bw = new BinaryWriter(outputFile);
while ((readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50))>0) {
bw.Write(buffer, 0, readBytes);
}
outputFile.Close();
}
}
Public Shared Sub BinHexDecodeImageFile()
Dim buffer(999) As Byte
Dim readBytes As Integer = 0
Using reader As XmlReader = XmlReader.Create("output.xml")
Dim outputFile As New FileStream("C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
' Read to the image element.
reader.ReadToFollowing("image")
' Read the BinHex data.
Console.WriteLine(vbCr + vbLf + "Reading BinHex...")
Dim bw As New BinaryWriter(outputFile)
readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
While (readBytes > 0)
bw.Write(buffer, 0, readBytes)
readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
End While
outputFile.Close()
End Using
End Sub
Açıklamalar
Bu yöntem öğe içeriğini okur, kodlama kullanarak BinHex
kodunu çözer ve çözülen ikili baytları (örneğin, satır içi BinHex
kodlanmış GIF görüntüsü) arabelleğe döndürür.
Bu yöntem yalnızca basit içerik öğelerini okuyabilir. öğesi metin, boşluk, önemli boşluk, CDATA bölümleri, açıklamalar ve işleme yönergeleri içerebilir. Ayrıca otomatik olarak genişletilen varlık başvuruları da içerebilir. öğesinin alt öğeleri olamaz.
Bu yöntem yöntemine ReadContentAsBinHex çok benzer, ancak yalnızca öğe düğümü türlerinde çağrılabilir.
count
Değer belgedeki bayt sayısından yüksekse veya belgedeki bayt sayısına eşitse, XmlReader belgedeki kalan tüm baytları okur ve okunan bayt sayısını döndürür. Sonraki XmlReader yöntem çağrısı sıfır döndürür ve okuyucuyu aşağıdaki EndElement
düğüme taşır.
Tüm öğe içeriği tüketilmeden önce çağrısı Read yaparsanız, okuyucu ilk içerik tüketilmiş ve yöntemi Read çağrılmış gibi davranabilir. Bu, okuyucunun son öğeyle karşılaşılana kadar tüm metni okuyacağı anlamına gelir. Ardından bitiş etiketi düğümünü okur, sonraki düğümü okur ve ardından kendisini sonraki düğüme yerleştirir.
Bu yöntemin zaman uyumsuz sürümü için bkz ReadElementContentAsBinHexAsync. .