EncoderFallbackBuffer Classe

Definição

Fornece um buffer que permite a um handler de fallback devolver uma string alternativa a um codificador quando não consegue codificar um carácter de entrada.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Herança
EncoderFallbackBuffer
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 codificação, que converte um carácter de entrada numa sequência de bytes de saída, falha se não for definido mapeamento para um determinado carácter.

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 fallback dos codificadores devem implementar o seguinte:

  • Um encoder fallback, que é representado por uma classe derivada da EncoderFallback classe.

  • Um buffer de fallback codificador, que é representado por um tipo derivado da EncoderFallbackBuffer 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 codificador pode devolver uma string que representa uma aproximação próxima do carácter de entrada. .NET Framework não fornece uma implementação pública de melhor ajuste EncoderFallbackBuffer.

  • Substituição. O buffer de retenção do codificador pode devolver uma cadeia, como um ponto de interrogação ("?"), que indica que um carácter não poderia ser codificado. No .NET Framework, as classes EncoderReplacementFallback e EncoderReplacementFallbackBuffer fornecem uma implementação pública de substituição do buffer de recurso. O construtor da EncoderReplacementFallback classe permite-lhe definir a cadeia de substituição.

  • Exceção. A EncoderFallbackBuffer implementação lança uma exceção, que indica que um carácter não pode ser codificado, e termina a operação de codificação. Neste caso, o controlador de reserva deve fornecer uma EncoderFallbackBuffer implementação, embora não devolva uma string ao codificador. No .NET Framework, as classes EncoderExceptionFallback e EncoderExceptionFallbackBuffer fornecem uma implementação pública de exceção que gera um EncoderFallbackException quando um carácter não pode ser codificado.

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

  • O método sobrecarregado Fallback , que é chamado pelo codificador quando não consegue codificar um carácter. O codificador passa duas informações para a implementação do buffer de reserva: o par de caracteres ou substitutos que não pôde ser codificado e o índice do carácter na entrada. Num handler de exceções de fallback de codificador, 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 codificador 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 tratador de exceções 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 serem devolvidos ao codificador. Um tratador de fallback de exceções devolve sempre zero.

Construtores

Name Description
EncoderFallbackBuffer()

Inicializa uma nova instância da EncoderFallbackBuffer classe.

Propriedades

Name Description
Remaining

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

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fallback(Char, Char, Int32)

Quando sobreposto numa classe derivada, prepara o buffer de reserva para lidar com o par de substitutos especificado.

Fallback(Char, Int32)

Quando é sobreposto numa classe derivada, prepara o buffer de reserva para tratar o carácter de entrada especificado.

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