XmlReader.ReadValueChunk(Char[], 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 de grands flux de texte incorporés dans un document XML.
public:
virtual int ReadValueChunk(cli::array <char> ^ buffer, int index, int count);
public virtual int ReadValueChunk(char[] buffer, int index, int count);
abstract member ReadValueChunk : char[] * int * int -> int
override this.ReadValueChunk : char[] * int * int -> int
Public Overridable Function ReadValueChunk (buffer As Char(), index As Integer, count As Integer) As Integer
Paramètres
- buffer
- Char[]
Tableau de caractères qui sert de mémoire tampon dans laquelle le contenu du texte est écrit. Cette valeur ne peut pas être null.
- index
- Int32
Décalage au sein de la mémoire tampon où l’objet XmlReader peut commencer à copier les résultats.
- count
- Int32
Nombre maximal de caractères à copier dans la mémoire tampon. Le nombre réel de caractères copiés est retourné à partir de cette méthode.
Retours
Nombre de caractères lus dans la mémoire tampon. La valeur zéro est retournée lorsqu’il n’y a plus de contenu texte.
Exceptions
Le nœud actuel n’a pas de valeur (HasValue est false).
- 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 ».
La buffer valeur est null.
L’index dans la mémoire tampon, ou 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.
Les données XML ne sont pas bien formées.
Remarques
Cette méthode permet de lire des flux de texte très volumineux incorporés dans un document XML de manière de diffusion en continu, autrement dit, un petit nombre de caractères à la fois au lieu d’allouer une seule chaîne pour la valeur entière. Cette méthode peut être appelée sur n’importe quel nœud qui a une valeur (HasValue est true), mais la diffusion en continu réelle de la valeur de nœud se produit uniquement lorsqu’elle est appelée sur un texte, un espace blanc et des nœuds d’espace blanc significatifs. D’autres valeurs de type de nœud sont mises en cache, notamment les attributs et les nœuds CDATA.
Cette méthode retourne uniquement le contenu de la Value propriété et ne déplace pas le XmlReader.
Cette méthode lit le nombre spécifié de caractères (count) de la valeur de nœud dans une mémoire tampon de caractères (buffer) à un décalage spécifié (index) et retourne le nombre de caractères écrits dans la mémoire tampon. Elle retourne le 0 moment où elle a atteint la fin de la valeur. Il ne peut pas être redémarré pour lire à nouveau la valeur.
Entre les appels aux ReadValueChunkXmlReader propriétés, aucune modification n’est effectuée à l’exception de la Value propriété. Lorsque la Value propriété est accessible, elle peut retourner une valeur partielle (avec des caractères non encore retournés par ReadValueChunk) ou une valeur complète en fonction de l’implémentation. Toutes les XmlReader implémentations de l’espace System.Xml de noms retournent une valeur partielle pour l’implémentation de propriété Value .
Toute méthode Read peut être appelée entre les appels à ReadValueChunk. Si cela se produit, les XmlReader déplacements vers la suivante XmlNodeType dans le flux et les caractères qui ne sont pas encore retournés sont ignorés.
Il peut y avoir un cas où ReadValueChunk retourne moins que le nombre demandé de caractères. Par exemple, si vous aviez une valeur longue de 200 caractères avec une paire de substitution aux positions 127 et 128 et que vous avez appelée ReadValueChunk avec une mémoire tampon de 128 caractères, l’appel de méthode retournerait 127 caractères au lieu du 128 demandé. La paire de substitution est ensuite retournée dans l’appel suivant ReadValueChunk . Dans ce cas, ReadValueChunk n’a pas retourné les 128 caractères demandés, car cela aurait entraîné une paire de substitution incomplète à la fin de la mémoire tampon.
Pour obtenir la version asynchrone de cette méthode, consultez ReadValueChunkAsync.