Condividi tramite


DecoderFallbackBuffer Classe

Definizione

Fornisce un buffer che consente a un gestore di fallback di restituire una stringa alternativa a un decodificatore quando non è in grado di decodificare una sequenza di byte di input.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Ereditarietà
DecoderFallbackBuffer
Derivato

Commenti

Una codifica definisce un mapping tra un carattere Unicode e una sequenza codificata di byte. Un'operazione di decodifica, che converte una sequenza di byte di input in un carattere di output, non riesce se non viene definito alcun mapping per una determinata sequenza di byte.

.NET Framework fornisce un meccanismo di gestione degli errori, denominato fallback, se non è possibile eseguire una conversione. Tutti i gestori di fallback del decodificatore devono implementare quanto segue:

  • Fallback del decodificatore, rappresentato da una classe derivata dalla DecoderFallback classe .

  • Buffer di fallback del decodificatore, rappresentato da un tipo derivato dalla DecoderFallbackBuffer classe che può restituire una stringa all'operazione di conversione.

I fallback possono usare tre strategie per gestire gli errori di conversione:

  • Mapping ottimale. Il buffer di fallback del decodificatore può restituire una stringa che rappresenta un'approssimazione vicina alla sequenza di byte di input. .NET Framework non fornisce un'implementazione più adatta al DecoderFallbackBuffer pubblico.

  • Sostituzione. Il buffer di fallback del decodificatore può restituire una stringa, ad esempio un punto interrogativo ("?"), che indica che non è stato possibile decodificare una sequenza di byte. In .NET Framework le DecoderReplacementFallback classi e DecoderReplacementFallbackBuffer forniscono un'implementazione del buffer di fallback di sostituzione pubblica. Il costruttore della DecoderReplacementFallback classe consente di definire la stringa di sostituzione.

  • Eccezione. L'implementazione DecoderFallbackBuffer genera un'eccezione, che indica che una sequenza di byte non può essere decodificata e termina l'operazione di decodifica. In questo caso, il gestore di fallback deve fornire un'implementazione, anche se non restituisce una DecoderFallbackBuffer stringa al decodificatore. In .NET Framework le DecoderExceptionFallback classi e DecoderExceptionFallbackBuffer forniscono un'implementazione di fallback di eccezione pubblica che genera un DecoderFallbackException valore quando non è possibile decodificare una sequenza di byte.

Il buffer in un'implementazione DecoderFallbackBuffer rappresenta l'intera stringa da restituire al decodificatore in risposta a un fallback del decodificatore. In genere, le implementazioni includono anche informazioni sullo stato, ad esempio l'indice del carattere successivo da restituire al decodificatore e il numero di caratteri rimanenti da restituire. Poiché DecoderFallbackBuffer è una classe astratta, è necessario che le classi derivate implementino i membri seguenti almeno:

  • Metodo Fallback chiamato dal decodificatore quando non può decodificare una sequenza di byte. Il decodificatore passa due informazioni all'implementazione del buffer di fallback: una matrice contenente i byte che non possono essere decodificati e l'indice del primo byte nella matrice di byte di input. In un gestore di eccezioni di fallback del decodificatore viene generata l'eccezione in questo metodo. In caso contrario, il metodo restituisce true se fornisce un fallback o false se non lo fa.

  • Metodo GetNextChar , chiamato ripetutamente dal decodificatore se il Fallback metodo restituisce true. Nelle chiamate successive, il gestore deve restituire ogni carattere nel relativo buffer. Quando ha restituito tutti i caratteri, dovrebbe restituire U+0000. Un gestore di fallback di eccezione restituisce sempre U+0000.

  • Metodo MovePrevious , che tenta di spostare il puntatore alla posizione precedente nel buffer e indica se lo spostamento ha avuto esito positivo. Un gestore di eccezioni restituisce falsesempre .

  • Proprietà Remaining , che indica il numero di caratteri rimanenti da restituire al decodificatore. Un gestore di fallback di eccezione restituisce sempre zero.

Costruttori

DecoderFallbackBuffer()

Inizializza una nuova istanza della classe DecoderFallbackBuffer.

Proprietà

Remaining

Quando sottoposto a override in una classe derivata, ottiene il numero di caratteri nell'oggetto DecoderFallbackBuffer corrente ancora da elaborare.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Fallback(Byte[], Int32)

Quando sottoposto a override in una classe derivata, prepara il buffer di fallback alla gestione della sequenza di byte di input specificata.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetNextChar()

Quando sottoposto a override in una classe derivata, recupera il carattere successivo nel buffer di fallback.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MovePrevious()

Quando sottoposto a override in una classe derivata, genera la chiamata successiva al metodo GetNextChar() per accedere alla posizione del carattere del buffer di dati precedente al carattere corrente.

Reset()

Inizializza tutti i dati e le informazioni sullo stato relativamente a questo buffer di fallback.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche