Partager via


DecoderFallbackBuffer Classe

Définition

Fournit une mémoire tampon qui permet à un gestionnaire de secours de retourner une autre chaîne à un décodeur lorsqu'il ne peut pas décoder une séquence d'octets en entrée.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Héritage
DecoderFallbackBuffer
Dérivé

Remarques

Un encodage définit un mappage entre un caractère Unicode et une séquence codée d’octets. Une opération de décodage, qui convertit une séquence d’octets d’entrée en caractère de sortie, échoue si aucun mappage n’est défini pour une séquence d’octets particulière.

Le .NET Framework fournit un mécanisme de gestion des défaillances, appelé secours, si une conversion ne peut pas être effectuée. Tous les gestionnaires de secours de décodeur doivent implémenter les éléments suivants :

  • Secours d’un décodeur, représenté par une classe dérivée de la DecoderFallback classe.

  • Mémoire tampon de secours de décodeur, représentée par un type dérivé de la DecoderFallbackBuffer classe qui peut retourner une chaîne à l’opération de conversion.

Les secours peuvent utiliser trois stratégies pour gérer les échecs de conversion :

  • Mappage le mieux adapté. La mémoire tampon de secours du décodeur peut retourner une chaîne qui représente une approximation proche de la séquence d’octets d’entrée. Le .NET Framework ne fournit pas d’implémentation adaptée au publicDecoderFallbackBuffer.

  • Remplacement. La mémoire tampon de secours du décodeur peut retourner une chaîne, telle qu’un point d’interrogation (« ? »), qui indique qu’une séquence d’octets n’a pas pu être décodée. Dans le .NET Framework, les DecoderReplacementFallback classes et DecoderReplacementFallbackBuffer fournissent une implémentation de mémoire tampon de secours de remplacement publique. Le constructeur de la DecoderReplacementFallback classe vous permet de définir la chaîne de remplacement.

  • Exception. L’implémentation DecoderFallbackBuffer lève une exception, qui indique qu’une séquence d’octets ne peut pas être décodée et met fin à l’opération de décodage. Dans ce cas, le gestionnaire de secours doit fournir une DecoderFallbackBuffer implémentation, bien qu’il ne retourne pas de chaîne au décodeur. Dans le .NET Framework, les DecoderExceptionFallback classes et DecoderExceptionFallbackBuffer fournissent une implémentation de secours d’exception publique qui lève un DecoderFallbackException moment où une séquence d’octets ne peut pas être décodée.

La mémoire tampon d’une DecoderFallbackBuffer implémentation représente la chaîne entière à retourner au décodeur en réponse à un secours de décodeur. En règle générale, les implémentations incluent également des informations d’état, telles que l’index du caractère suivant pour revenir au décodeur et le nombre de caractères restants à retourner. Étant donné qu’il DecoderFallbackBuffer s’agit d’une classe abstraite, elle nécessite des classes dérivées pour implémenter les membres suivants au minimum :

  • Méthode Fallback appelée par le décodeur lorsqu’elle ne peut pas décoder une séquence d’octets. Le décodeur transmet deux éléments d’informations à l’implémentation de la mémoire tampon de secours : un tableau contenant les octets qui n’ont pas pu être décodés et l’index du premier octet dans le tableau d’octets d’entrée. Dans un gestionnaire d’exceptions de secours de décodeur, l’exception est levée dans cette méthode. Sinon, la méthode retourne true s’il fournit une secours ou false s’il ne le fait pas.

  • Méthode GetNextChar appelée à plusieurs reprises par le décodeur si la Fallback méthode retourne true. Dans les appels successifs, le gestionnaire doit retourner chaque caractère dans sa mémoire tampon. Lorsqu’il a retourné tous les caractères, il doit retourner U+0000. Un gestionnaire de secours d’exception retourne toujours U+0000.

  • La MovePrevious méthode, qui tente de déplacer le pointeur vers la position précédente dans la mémoire tampon et indique si le déplacement a réussi. Un gestionnaire d’exceptions retourne falsetoujours .

  • Propriété Remaining , qui indique le nombre de caractères restants à retourner au décodeur. Un gestionnaire de secours d’exception retourne toujours zéro.

Constructeurs

DecoderFallbackBuffer()

Initialise une nouvelle instance de la classe DecoderFallbackBuffer.

Propriétés

Remaining

En cas de substitution dans une classe dérivée, obtient le nombre de caractères de l'objet DecoderFallbackBuffer en cours qu'il reste à traiter.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Fallback(Byte[], Int32)

En cas de substitution dans une classe dérivée, prépare la mémoire tampon de secours à la gestion de la séquence d'octets spécifiée en entrée.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetNextChar()

En cas de substitution dans une classe dérivée, récupère le caractère suivant de la mémoire tampon de secours.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MovePrevious()

En cas de substitution dans une classe dérivée, provoque l'appel suivant à la méthode GetNextChar() pour accéder à la position de caractère de la mémoire tampon précédant la position de caractère en cours.

Reset()

Initialise toutes les données et informations d'état relatives à cette mémoire tampon de secours.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi