DecoderFallbackBuffer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Puffer bereit, der einen Fallback-Handler zulässt, der eine alternative Zeichenfolge an einen Decoder zurückzugibt, wenn eine Eingabebytefolge 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, bei dem eine Eingabebytesequenz in ein Ausgabezeichen konvertiert wird, schlägt fehl, wenn keine Zuordnung für eine bestimmte Bytesequenz definiert ist.
Die .NET Framework stellt einen Mechanismus zur Fehlerbehandlung bereit, der als Fallback bezeichnet wird, wenn eine Konvertierung nicht ausgeführt werden kann. Alle Decoderfallbackhandler müssen Folgendes implementieren:
Ein Decoderfallback, das durch eine von der DecoderFallback -Klasse abgeleitete Klasse dargestellt wird.
Ein Decoderfallbackpuffer, der durch einen von der -Klasse abgeleiteten Typ dargestellt wird, der DecoderFallbackBuffer eine Zeichenfolge an den Konvertierungsvorgang zurückgeben kann.
Fallbacks können drei Strategien verwenden, um Konvertierungsfehler zu behandeln:
Die zuordnung ist am besten geeignet. Der Decoderfallbackpuffer kann eine Zeichenfolge zurückgeben, die eine enge Annäherung an die Eingabebytesequenz darstellt. Die .NET Framework bietet keine öffentliche, am besten geeignete DecoderFallbackBuffer Implementierung.
Ersatz. Der Decoderfallbackpuffer kann eine Zeichenfolge zurückgeben, z. B. ein Fragezeichen ("?"), das angibt, dass eine Bytesequenz nicht decodiert werden konnte. In der .NET Framework stellen die DecoderReplacementFallback Klassen und DecoderReplacementFallbackBuffer eine Öffentliche Ersatzfallbackpufferimplementierung bereit. Mit dem Konstruktor der DecoderReplacementFallback -Klasse können Sie die Ersatzzeichenfolge 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, gibt jedoch keine Zeichenfolge an den Decoder zurück. In der .NET Framework stellen die DecoderExceptionFallback Klassen und DecoderExceptionFallbackBuffer eine öffentliche Ausnahmefallbackimplementierung bereit, die einen DecoderFallbackException auslöst, wenn eine Bytesequenz nicht decodiert werden kann.
Der Puffer in einer DecoderFallbackBuffer Implementierung stellt die gesamte Zeichenfolge dar, die als Reaktion auf ein Decoderfallback an den Decoder zurückgegeben werden soll. Im Allgemeinen enthalten Implementierungen auch Zustandsinformationen, z. B. den Index des nächsten Zeichens, das an den Decoder zurückgegeben werden soll, und die Anzahl der verbleibenden Zeichen, die zurückgegeben werden sollen. Da DecoderFallbackBuffer es sich um eine abstrakte Klasse handelt, sind abgeleitete Klassen erforderlich, um mindestens die folgenden Member zu implementieren:
Die Fallback -Methode, die vom Decoder aufgerufen wird, wenn eine Bytesequenz nicht decodiert werden 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 oderfalse
nicht.Die GetNextChar -Methode, die wiederholt vom Decoder aufgerufen wird, wenn die Fallback -Methode zurückgibt
true
. Bei aufeinander folgenden Aufrufen sollte der Handler jedes Zeichen in seinem 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 angibt, 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
DecoderFallbackBuffer() |
Initialisiert eine neue Instanz der DecoderFallbackBuffer-Klasse. |
Eigenschaften
Remaining |
Ruft beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen im aktuellen DecoderFallbackBuffer-Objekt ab, die noch zu verarbeiten sind. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Fallback(Byte[], Int32) |
Bereitet beim Überschreiben in einer abgeleiteten Klasse den Fallbackpuffer darauf vor, die angegebene Eingabebytefolge zu behandeln. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetNextChar() |
Ruft beim Überschreiben in einer abgeleiteten Klasse das nächste Zeichen im Fallbackpuffer ab. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
MovePrevious() |
Veranlasst beim Überschreiben in einer abgeleiteten Klasse, dass der nächste Aufruf an die GetNextChar()-Methode auf die Datenpufferzeichenposition vor der aktuellen Zeichenposition zugreift. |
Reset() |
Initialisiert alle Daten und Zustandsinformationen, die diesen Fallbackpuffer betreffen. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |