Partilhar via


DecoderFallbackBuffer Classe

Definição

Fornece um buffer que permite que um manipulador de fallback retorne uma cadeia de caracteres alternativa para um decodificador quando ele não é capaz de decodificar uma sequência de bytes de entrada.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Herança
DecoderFallbackBuffer
Derivado

Comentários

Uma codificação define um mapeamento entre um caractere Unicode e uma sequência codificada de bytes. Uma operação de decodificação, que converte uma sequência de bytes de entrada em um caractere de saída, falhará se nenhum mapeamento for definido para uma sequência de bytes específica.

O .NET Framework fornece um mecanismo de tratamento de falhas, chamado de fallback, se uma conversão não puder ser executada. Todos os manipuladores de fallback do decodificador devem implementar o seguinte:

  • Um fallback do decodificador, que é representado por uma classe derivada da DecoderFallback classe.

  • Um buffer de fallback do decodificador, que é representado por um tipo derivado da DecoderFallbackBuffer classe que pode retornar uma cadeia de caracteres para a operação de conversão.

Os fallbacks podem usar três estratégias para lidar com falhas de conversão:

  • Mapeamento de melhor ajuste. O buffer de fallback do decodificador pode retornar uma cadeia de caracteres que representa uma aproximação próxima à sequência de bytes de entrada. O .NET Framework não fornece uma implementação pública de melhor ajusteDecoderFallbackBuffer.

  • Substituição. O buffer de fallback do decodificador pode retornar uma cadeia de caracteres, como um ponto de interrogação ("?"), que indica que uma sequência de bytes não pôde ser decodificada. No .NET Framework, as classes e DecoderReplacementFallbackBuffer as DecoderReplacementFallback classes fornecem uma implementação de buffer de fallback de substituição pública. O construtor da DecoderReplacementFallback classe permite que você defina a cadeia de caracteres de substituição.

  • Exceção. A DecoderFallbackBuffer implementação gera uma exceção, que indica que uma sequência de bytes não pode ser decodificada e encerra a operação de decodificação. Nesse caso, o manipulador de fallback deve fornecer uma DecoderFallbackBuffer implementação, embora não retorne uma cadeia de caracteres para o decodificador. No .NET Framework, as classes e DecoderExceptionFallbackBuffer as DecoderExceptionFallback classes fornecem uma implementação de fallback de exceção pública que gera quando DecoderFallbackException uma sequência de bytes não pode ser decodificada.

O buffer em uma DecoderFallbackBuffer implementação representa toda a cadeia de caracteres a ser retornada ao decodificador em resposta a um fallback do decodificador. Em geral, as implementações também incluem informações de estado, como o índice do próximo caractere a ser retornado ao decodificador e o número de caracteres restantes a serem retornados. Como DecoderFallbackBuffer é uma classe abstrata, ela requer classes derivadas para implementar os seguintes membros no mínimo:

  • O Fallback método, que é chamado pelo decodificador quando não pode decodificar uma sequência de bytes. O decodificador passa duas informações para a implementação do buffer de fallback: uma matriz que contém os bytes que não puderam ser decodificados e o índice do primeiro byte na matriz de bytes de entrada. Em um manipulador de exceção de fallback do decodificador, a exceção é gerada neste método. Caso contrário, o método retornará true se ele fornecer um fallback ou false se não o fizer.

  • O GetNextChar método, que é chamado repetidamente pelo decodificador se o Fallback método retornar true. Em chamadas sucessivas, o manipulador deve retornar cada caractere em seu buffer. Quando tiver retornado todos os caracteres, ele deverá retornar U+0000. Um manipulador de fallback de exceção sempre retorna U+0000.

  • O MovePrevious método, que tenta mover o ponteiro para a posição anterior no buffer e indica se a movimentação foi bem-sucedida. Um manipulador de exceção sempre retorna false.

  • A Remaining propriedade, que indica o número de caracteres restantes a serem retornados ao decodificador. Um manipulador de fallback de exceção sempre retorna zero.

Construtores

DecoderFallbackBuffer()

Inicializa uma nova instância da classe DecoderFallbackBuffer.

Propriedades

Remaining

Quando substituído em uma classe derivada, obtém o número máximo de caracteres no objeto DecoderFallbackBuffer atual que ainda não foi processado.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fallback(Byte[], Int32)

Quando substituído em uma classe derivada, prepara o buffer de fallback para manipular a sequência de bytes de entrada especificada.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetNextChar()

Quando substituído em uma classe derivada, recupera o próximo caractere no buffer de fallback.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MovePrevious()

Quando substituído em uma classe derivada, faz com que a próxima chamada para o método GetNextChar() acesse a posição do caractere do buffer de dados que é anterior à posição atual do caractere.

Reset()

Inicializa todas as informações de dados e de estado pertencentes a esse buffer de fallback.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também