Comparteix a través de


DecoderFallbackBuffer Clase

Definición

Proporciona un búfer que permite que un controlador de reserva devuelva una cadena alternativa a un descodificador cuando no puede descodificar una secuencia de bytes de entrada.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Herencia
DecoderFallbackBuffer
Derivado

Comentarios

Una codificación define una asignación entre un carácter Unicode y una secuencia codificada de bytes. Se produce un error en una operación de descodificación, que convierte una secuencia de bytes de entrada en un carácter de salida, si no se define ninguna asignación para una secuencia de bytes determinada.

.NET Framework proporciona un mecanismo de control de errores, denominado reserva, si no se puede realizar una conversión. Todos los controladores de reserva del descodificador deben implementar lo siguiente:

  • Reserva de descodificador, representada por una clase derivada de la DecoderFallback clase .

  • Un búfer de reserva de descodificador, representado por un tipo derivado de la DecoderFallbackBuffer clase que puede devolver una cadena a la operación de conversión.

Las reservas pueden usar tres estrategias para controlar los errores de conversión:

  • Asignación más adecuada. El búfer de reserva del descodificador puede devolver una cadena que representa una aproximación cercana a la secuencia de bytes de entrada. .NET Framework no proporciona una implementación más adecuada DecoderFallbackBuffer para el público.

  • Sustitución. El búfer de reserva del descodificador puede devolver una cadena, como un signo de interrogación ("?"), que indica que no se pudo descodificar una secuencia de bytes. En .NET Framework, las DecoderReplacementFallback clases y DecoderReplacementFallbackBuffer proporcionan una implementación del búfer de reserva de reemplazo público. El constructor de la DecoderReplacementFallback clase permite definir la cadena de reemplazo.

  • Excepción. La DecoderFallbackBuffer implementación produce una excepción, que indica que no se puede descodificar una secuencia de bytes y finaliza la operación de descodificación. En este caso, el controlador de reserva debe proporcionar una DecoderFallbackBuffer implementación, aunque no devuelve una cadena al descodificador. En .NET Framework, las DecoderExceptionFallback clases y DecoderExceptionFallbackBuffer proporcionan una implementación de reserva de excepción pública que produce una DecoderFallbackException excepción cuando no se puede descodificar una secuencia de bytes.

El búfer de una DecoderFallbackBuffer implementación representa toda la cadena que se va a devolver al descodificador en respuesta a una reserva de descodificador. Por lo general, las implementaciones también incluyen información de estado, como el índice del siguiente carácter para volver al descodificador y el número de caracteres restantes que se van a devolver. Dado DecoderFallbackBuffer que es una clase abstracta, requiere clases derivadas para implementar los siguientes miembros como mínimo:

  • Método Fallback al que llama el descodificador cuando no puede descodificar una secuencia de bytes. El descodificador pasa dos fragmentos de información a la implementación del búfer de reserva: una matriz que contiene los bytes que no se pudieron descodificar y el índice del primer byte de la matriz de bytes de entrada. En un controlador de excepciones de reserva de descodificador, la excepción se produce en este método. De lo contrario, el método devuelve true si proporciona una reserva o false si no lo hace.

  • El GetNextChar método , al que llama repetidamente el descodificador si el Fallback método devuelve true. En llamadas sucesivas, el controlador debe devolver cada carácter en su búfer. Cuando haya devuelto todos los caracteres, debe devolver U+0000. Un controlador de reserva de excepciones siempre devuelve U+0000.

  • El MovePrevious método , que intenta mover el puntero a la posición anterior en el búfer e indica si el movimiento se realizó correctamente. Un controlador de excepciones siempre devuelve false.

  • La Remaining propiedad , que indica el número de caracteres restantes que se devolverán al descodificador. Un controlador de reserva de excepciones siempre devuelve cero.

Constructores

DecoderFallbackBuffer()

Inicializa una nueva instancia de la clase DecoderFallbackBuffer.

Propiedades

Remaining

Cuando se invalida en una clase derivada, obtiene el número de caracteres del objeto DecoderFallbackBuffer actual que están pendientes de ser procesados.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

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

Cuando se invalida en una clase derivada, prepara el búfer de reserva para controlar la secuencia de bytes de entrada especificada.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetNextChar()

Cuando se invalida en una clase derivada, recupera el carácter siguiente en el búfer de reserva.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MovePrevious()

Cuando se invalida en una clase derivada, realiza la siguiente llamada al método GetNextChar() para obtener acceso a la posición del carácter del búfer de datos situada antes de la posición del carácter actual.

Reset()

Inicializa todos los datos y la información de estado relacionados con este búfer de reserva.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también