DecoderFallbackBuffer Třída

Definice

Poskytuje vyrovnávací paměť, která umožňuje náhradní obslužné rutině vrátit alternativní řetězec dekodéru, když nemůže dekódovat vstupní bajtovou sekvenci.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Dědičnost
DecoderFallbackBuffer
Odvozené

Poznámky

Kódování definuje mapování mezi znakem Unicode a zakódovanou posloupností bajtů. Operace dekódování, která převede vstupní bajtovou sekvenci na výstupní znak, selže, pokud pro konkrétní bajtovou posloupnost není definováno žádné mapování.

.NET Framework poskytuje mechanismus zpracování selhání, označovaný jako náhradní, pokud převod nelze provést. Všechny náhradní obslužné rutiny dekodéru musí implementovat následující:

  • Dekódovací záložní objekt, který je reprezentován třídou odvozenou od DecoderFallback třídy.

  • Záložní vyrovnávací paměť dekódéru, která je reprezentována typem odvozeným z DecoderFallbackBuffer třídy, která může vrátit řetězec do operace převodu.

Náhradní funkce můžou používat tři strategie ke zpracování selhání převodu:

  • Mapování se nejlépe hodí. Záložní vyrovnávací paměť dekódéru může vrátit řetězec, který představuje blízkou aproximaci vstupní bajtové sekvence. .NET Framework neposkytuje veřejnou implementaci, která nejlépe vyhovujeDecoderFallbackBuffer.

  • Náhradní. Záložní vyrovnávací paměť dekódovače může vrátit řetězec, například otazník (?), který označuje, že se sekvence bajtů nedá dekódovat. V .NET Framework DecoderReplacementFallback poskytují třídy DecoderReplacementFallbackBuffer implementaci záložní vyrovnávací paměti pro veřejnou náhradu. Konstruktor DecoderReplacementFallback třídy umožňuje definovat náhradní řetězec.

  • Výjimka. Implementace DecoderFallbackBuffer vyvolá výjimku, která označuje, že se sekvence bajtu nedá dekódovat a ukončí operaci dekódování. V tomto případě musí náhradní obslužná rutina poskytnout DecoderFallbackBuffer implementaci, i když nevrací řetězec dekodéru. V .NET Framework DecoderExceptionFallback poskytují třídy DecoderExceptionFallbackBuffer veřejnou implementaci náhradní výjimky, která vyvoláDecoderFallbackException, když se sekvence bajtu nedá dekódovat.

Vyrovnávací paměť v DecoderFallbackBuffer implementaci představuje celý řetězec, který se má vrátit do dekodéru v reakci na záložní dekodér. Obecně platí, že implementace zahrnují také informace o stavu, například index dalšího znaku, který se má vrátit do dekodéru a počet zbývajících znaků, které se mají vrátit. Vzhledem k tomu DecoderFallbackBuffer , že je abstraktní třída, vyžaduje odvozené třídy k implementaci následujících členů minimálně:

  • Metoda Fallback , která je volána dekodérem, když nemůže dekódovat bajtovou sekvenci. Dekodér předává do implementace záložní vyrovnávací paměti dva části informací: pole obsahující bajty, které nebylo možné dekódovat, a index prvního bajtu ve vstupní bajtové matici. V obslužné rutině náhradní výjimky dekodéru se výjimka vyvolá v této metodě. Jinak metoda vrátí true , pokud poskytuje náhradní nebo false pokud ne.

  • Metoda GetNextChar , která se volá opakovaně dekodérem, pokud Fallback metoda vrátí true. V následných voláních by obslužná rutina měla vrátit každý znak ve své vyrovnávací paměti. Když se vrátí všechny znaky, měl by se vrátit U+0000. Náhradní obslužná rutina výjimky vždy vrátí U+0000.

  • Metoda MovePrevious , která se pokusí přesunout ukazatel na předchozí pozici ve vyrovnávací paměti a označuje, zda přesunutí proběhlo úspěšně. Obslužná rutina výjimky vždy vrátí false.

  • Vlastnost Remaining , která označuje počet zbývajících znaků, které se mají vrátit do dekodéru. Náhradní obslužná rutina výjimky vždy vrátí nulu.

Konstruktory

DecoderFallbackBuffer()

Inicializuje novou instanci DecoderFallbackBuffer třídy.

Vlastnosti

Remaining

Při přepsání v odvozené třídě získá počet znaků v aktuálním DecoderFallbackBuffer objektu, který zůstane zpracován.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Fallback(Byte[], Int32)

Při přepsání v odvozené třídě připraví záložní vyrovnávací paměť pro zpracování zadané vstupní bajtové sekvence.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetNextChar()

Při přepsání v odvozené třídě načte další znak v záložní vyrovnávací paměti.

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
MovePrevious()

Při přepsání v odvozené třídě způsobí další volání GetNextChar() metody přístup k pozici znaku vyrovnávací paměti dat, která je před aktuální pozici znaku znaku.

Reset()

Inicializuje všechny informace o datech a stavu vztahujících se k této záložní vyrovnávací paměti.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také