Freigeben über


DecoderFallbackBuffer Klasse

Definition

Stellt einen Puffer bereit, der es einem Fallbackhandler ermöglicht, eine alternative Zeichenfolge an einen Decoder zurückzugeben, wenn eine Eingabebytesequenz nicht decodiert werden kann.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Vererbung
DecoderFallbackBuffer
Abgeleitet

Hinweise

Eine Codierung definiert eine Zuordnung zwischen einem Unicode-Zeichen und einer codierten Bytesequenz. Ein Decodierungsvorgang, der eine Eingabebytesequenz in ein Ausgabezeichen konvertiert, schlägt fehl, wenn keine Zuordnung für eine bestimmte Bytesequenz definiert ist.

.NET Framework stellt einen Fehlerbehandlungsmechanismus bereit, der als Fallback bezeichnet wird, wenn eine Konvertierung nicht ausgeführt werden kann. Alle Decoder-Fallbackhandler müssen Folgendes implementieren:

  • Ein Decoder-Fallback, der durch eine von der DecoderFallback Klasse abgeleitete Klasse dargestellt wird.

  • Ein Decoder-Fallbackpuffer, der durch einen von der DecoderFallbackBuffer Klasse abgeleiteten Typ dargestellt wird, der eine Zeichenfolge an den Konvertierungsvorgang zurückgeben kann.

Fallbacks können drei Strategien zum Behandeln von Konvertierungsfehlern verwenden:

  • Optimale Zuordnung. Der Decoder-Fallbackpuffer kann eine Zeichenfolge zurückgeben, die eine enge Annäherung an die Eingabebytesequenz darstellt. .NET Framework bietet keine public best-fit-Implementierung DecoderFallbackBuffer .

  • Ersatz. Der Decoder-Fallbackpuffer kann eine Zeichenfolge zurückgeben, z. B. ein Fragezeichen ("?"), das angibt, dass eine Bytesequenz nicht decodiert werden konnte. In .NET Framework stellen die DecoderReplacementFallback Klassen DecoderReplacementFallbackBuffer eine Implementierung des öffentlichen Ersatzpuffers bereit. Mit dem Konstruktor der DecoderReplacementFallback Klasse können Sie die Ersetzungszeichenfolge definieren.

  • Ausnahme. Die DecoderFallbackBuffer Implementierung löst eine Ausnahme aus, die angibt, dass eine Bytesequenz nicht decodiert werden kann, und beendet den Decodierungsvorgang. In diesem Fall muss der Fallbackhandler eine DecoderFallbackBuffer Implementierung bereitstellen, obwohl er keine Zeichenfolge an den Decoder zurückgibt. In .NET Framework stellen die DecoderExceptionFallback Klassen DecoderExceptionFallbackBuffer eine Fallbackimplementierung für öffentliche Ausnahmen bereit, die ausgelöst DecoderFallbackException wird, wenn eine Bytesequenz nicht decodiert werden kann.

Der Puffer in einer DecoderFallbackBuffer Implementierung stellt die gesamte Zeichenfolge dar, die als Reaktion auf einen Decoderfallback an den Decoder zurückgegeben werden soll. Im Allgemeinen enthalten Implementierungen auch Zustandsinformationen, z. B. den Index des nächsten Zeichens, um zum Decoder zurückzukehren, und die Anzahl der verbleibenden Zeichen, die zurückgegeben werden sollen. Da DecoderFallbackBuffer es sich um eine abstrakte Klasse handelt, müssen abgeleitete Klassen mindestens die folgenden Member implementieren:

  • Die Fallback Methode, die vom Decoder aufgerufen wird, wenn sie eine Bytesequenz nicht decodieren kann. Der Decoder übergibt zwei Informationen an die Fallbackpufferimplementierung: ein Array mit den Bytes, die nicht decodiert werden konnten, und den Index des ersten Byte im Eingabebytearray. In einem Decoderfallback-Ausnahmehandler wird die Ausnahme in dieser Methode ausgelöst. Andernfalls gibt die Methode zurück true , wenn sie einen Fallback bereitstellt oder false nicht.

  • Die GetNextChar Methode, die vom Decoder wiederholt aufgerufen wird, wenn die Fallback Methode zurückgegeben wird true. Bei aufeinander folgenden Aufrufen sollte der Handler jedes Zeichen im Puffer zurückgeben. Wenn alle Zeichen zurückgegeben wurden, sollte U+0000 zurückgegeben werden. Ein Ausnahmefallbackhandler gibt immer U+0000 zurück.

  • Die MovePrevious Methode, die versucht, den Zeiger an die vorherige Position im Puffer zu verschieben, und gibt an, ob die Verschiebung erfolgreich war. Ein Ausnahmehandler gibt immer zurück false.

  • Die Remaining Eigenschaft, die die Anzahl der verbleibenden Zeichen angibt, die an den Decoder zurückgegeben werden sollen. Ein Ausnahmefallbackhandler gibt immer Null zurück.

Konstruktoren

Name Beschreibung
DecoderFallbackBuffer()

Initialisiert eine neue Instanz der DecoderFallbackBuffer-Klasse.

Eigenschaften

Name Beschreibung
Remaining

Beim Überschreiben in einer abgeleiteten Klasse ruft die Anzahl der Zeichen im aktuellen DecoderFallbackBuffer Objekt ab, die verarbeitet werden sollen.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Fallback(Byte[], Int32)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Fallbackpuffer für die Verarbeitung der angegebenen Eingabebytesequenz vorbereitet.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetNextChar()

Beim Überschreiben in einer abgeleiteten Klasse ruft das nächste Zeichen im Fallbackpuffer ab.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MovePrevious()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der nächste Aufruf der GetNextChar() Methode auf die Position des Datenpufferzeichens zugegriffen, die sich vor der aktuellen Zeichenposition befindet.

Reset()

Initialisiert alle Daten- und Statusinformationen, die sich auf diesen Fallbackpuffer beziehen.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen