DecoderFallbackBuffer Classe

Definição

Fornece um buffer que permite a um handler de reserva devolver uma string alternativa a um descodificador quando não pode 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

Observações

Uma codificação define um mapeamento entre um carácter Unicode e uma sequência codificada de bytes. Uma operação de descodificação, que converte uma sequência de bytes de entrada num carácter de saída, falha se não for definida nenhuma correspondência para uma sequência de bytes específica.

O .NET Framework fornece um mecanismo de gestão de falhas, chamado de recurso, caso uma conversão não possa ser realizada. Todos os manipuladores de retenção dos decodificadores devem implementar o seguinte:

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

  • Um buffer de fallback de descodificador, que é representado por um tipo derivado da DecoderFallbackBuffer classe que pode devolver uma string à operação de conversão.

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

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

  • Substituição. O buffer de fallback do descodificador pode devolver uma cadeia, como um ponto de interrogação ("?"), que indica que uma sequência de bytes não poderia ser decodificada. No .NET Framework, as classes DecoderReplacementFallback e DecoderReplacementFallbackBuffer fornecem uma implementação pública de substituição do buffer de recurso. O construtor da DecoderReplacementFallback classe permite-lhe definir a cadeia de substituição.

  • Exceção. A DecoderFallbackBuffer implementação lança uma exceção, que indica que uma sequência de bytes não pode ser descodificada, e termina a operação de descodificação. Neste caso, o handler de fallback deve fornecer uma DecoderFallbackBuffer implementação, embora não devolva uma string ao decodificador. No .NET Framework, as classes DecoderExceptionFallback e DecoderExceptionFallbackBuffer fornecem uma implementação pública de exceção que gera um DecoderFallbackException quando uma sequência de bytes não pode ser decodificada.

O buffer numa DecoderFallbackBuffer implementação representa toda a cadeia a ser devolvida ao descodificador em resposta a um fallback do decodificador. Geralmente, as implementações também incluem informação de estado, como o índice do próximo carácter a devolver ao descodificador e o número de caracteres restantes a devolver. Por DecoderFallbackBuffer ser uma classe abstrata, requer que as classes derivadas implementem pelo menos os seguintes membros:

  • O Fallback método, que é chamado pelo descodificador quando este não consegue decodificar uma sequência de bytes. O descodificador passa duas informações para a implementação do buffer de reserva: um array contendo os bytes que não puderam ser decodificados e o índice do primeiro byte no array de bytes de entrada. Num handler de exceções de recurso, a exceção é lançada neste método. Caso contrário, o método retorna true se fornecer um plano B, ou false se não.

  • O GetNextChar método, que é chamado repetidamente pelo descodificador se o Fallback método devolver true. Em chamadas sucessivas, o manipulador deve devolver cada personagem no seu buffer. Quando devolveu todos os caracteres, deverá devolver U+0000. Um handler de fallback de exceção devolve sempre 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ções devolve falsesempre .

  • A Remaining propriedade, que indica o número de caracteres restantes a devolver ao descodificador. Um tratador de fallback de exceções devolve sempre zero.

Construtores

Name Description
DecoderFallbackBuffer()

Inicializa uma nova instância da DecoderFallbackBuffer classe.

Propriedades

Name Description
Remaining

Quando sobrescrito numa classe derivada, obtém o número de caracteres no objeto atual DecoderFallbackBuffer que restam para processar.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

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

Quando sobreposto numa classe derivada, prepara o buffer de reserva para gerir a sequência de bytes de entrada especificada.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetNextChar()

Quando é sobreposto numa classe derivada, recupera o próximo carácter no buffer de reserva.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MovePrevious()

Quando é sobreposto numa classe derivada, faz com que a próxima chamada ao GetNextChar() método aceda à posição do caractere do buffer de dados anterior à posição atual do caractere.

Reset()

Inicializa todos os dados e informações de estado relativos a este buffer de reserva.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também