XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lit l’élément et décode le BinHex contenu.
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
Paramètres
- buffer
- Byte[]
Mémoire tampon dans laquelle copier le texte résultant. Cette valeur ne peut pas être null.
- index
- Int32
Décalage dans la mémoire tampon où commencer à copier le résultat.
- count
- Int32
Nombre maximal d’octets à copier dans la mémoire tampon. Le nombre réel d’octets copiés est retourné à partir de cette méthode.
Retours
Nombre d’octets écrits dans la mémoire tampon.
Exceptions
La buffer valeur est null.
Le nœud actuel n’est pas un nœud d’élément.
- ou -
Une XmlReader méthode a été appelée avant la fin d’une opération asynchrone précédente. Dans ce cas, InvalidOperationException est levée avec le message « Une opération asynchrone est déjà en cours ».
L’index dans la mémoire tampon ou l’index + nombre est supérieur à la taille de mémoire tampon allouée.
L’implémentation XmlReader ne prend pas en charge cette méthode.
L’élément contient du contenu mixte.
Le contenu ne peut pas être converti en type demandé.
Exemples
L’exemple suivant lit une image encodée en ligne BinHex . Les BinHex données sont incorporées dans l’élément <image> . A BinaryWriter est utilisé pour créer un fichier de données binaires.
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
Remarques
Cette méthode lit le contenu de l’élément, le décode à l’aide BinHex de l’encodage et retourne les octets binaires décodés (par exemple, une image GIF codée en ligne BinHex) dans la mémoire tampon.
Cette méthode ne peut lire que des éléments de contenu simple. L’élément peut contenir du texte, un espace blanc, un espace blanc significatif, des sections CDATA, des commentaires et des instructions de traitement. Il peut également contenir des références d’entité, qui sont automatiquement développées. L’élément ne peut pas avoir d’éléments enfants.
Cette méthode est très similaire à la ReadContentAsBinHex méthode, sauf qu’elle ne peut être appelée que sur les types de nœuds d’élément.
Si la count valeur est supérieure au nombre d’octets du document ou si elle est égale au nombre d’octets du document, elle XmlReader lit tous les octets restants dans le document et retourne le nombre d’octets lus. L’appel de méthode suivant XmlReader retourne un zéro et déplace le lecteur vers le nœud suivant le EndElement.
Si vous appelez Read avant que tout le contenu de l’élément soit consommé, le lecteur peut se comporter comme si le premier contenu a été consommé, puis la Read méthode a été appelée. Cela signifie que le lecteur lit tout le texte jusqu’à ce que l’élément final soit rencontré. Il lit ensuite le nœud de balise de fin, lit le nœud suivant, puis se positionne sur le nœud suivant.
Pour obtenir la version asynchrone de cette méthode, consultez ReadElementContentAsBinHexAsync.