DecoderFallbackBuffer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje vyrovnávací paměť, která umožňuje náhradní obslužné rutině vrátit alternativní řetězec dekodéru, pokud 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 sekvencí bajtů. Operace dekódování, která převede vstupní bajtovou sekvenci na výstupní znak, selže, pokud pro konkrétní bajtovou sekvenci není definováno žádné mapování.
Rozhraní .NET Framework poskytuje mechanismus zpracování selhání, který se označuje jako záložní, pokud nelze provést převod. Všechny náhradní obslužné rutiny dekodéru musí implementovat následující:
Dekodér náhradní, který je reprezentován třídou odvozenou z DecoderFallback třídy.
Dekodér náhradní vyrovnávací paměť, která je reprezentována typem odvozeným z DecoderFallbackBuffer třídy, která může vrátit řetězec do operace převodu.
Náhradní řešení může ke zpracování chyb převodu použít tři strategie:
Mapování co nejlépe vyhovuje. Dekodérová záložní vyrovnávací paměť může vrátit řetězec, který představuje blízkou aproximaci vstupní sekvence bajtů. Rozhraní .NET Framework neposkytuje veřejnou DecoderFallbackBuffer nejvhodnější implementaci.
Náhrada. Dekodérová záložní vyrovnávací paměť může vrátit řetězec, například otazník (?), který označuje, že se sekvence bajtů nedá dekódovat. V rozhraní .NET Framework DecoderReplacementFallback a DecoderReplacementFallbackBuffer třídy poskytují 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á indikuje, že posloupnost bajtů nelze dekódovat a ukončí operaci dekódování. V tomto případě musí obslužná rutina náhradního objektu poskytnout DecoderFallbackBuffer implementaci, i když nevrací řetězec dekodéru. V rozhraní .NET Framework DecoderExceptionFallback a DecoderExceptionFallbackBuffer třídy poskytují veřejnou záložní implementaci výjimky, která vyvolá DecoderFallbackException , když sekvence bajtů nelze dekódovat.
Vyrovnávací paměť v DecoderFallbackBuffer implementaci představuje celý řetězec, který se má vrátit dekodér v reakci na náhradní 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 údaje: pole obsahující bajty, které nelze dekódovat, a index prvního bajtu ve vstupní bajtové matici. V dekodérové náhradní výjimce obslužné rutiny, výjimka je vyvolán v této metodě. V opačném případě metoda vrátí
true, pokud poskytuje náhradní, nebofalsepokud ne.Metoda GetNextChar , která je volána opakovaně dekodérem, pokud Fallback metoda vrátí
true. V následných voláních by obslužná rutina měla vracet každý znak v jeho vyrovnávací paměti. Když vrátí všechny znaky, měl by 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í bylo ú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é mají být vráceny dekodér. Obslužná rutina náhradní výjimky vždy vrátí nulu.
Konstruktory
| Name | Description |
|---|---|
| DecoderFallbackBuffer() |
Inicializuje novou instanci DecoderFallbackBuffer třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Remaining |
Při přepsání v odvozené třídě získá počet znaků v aktuálním DecoderFallbackBuffer objektu, které zůstanou zpracovány. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven 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() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního 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 znak vyrovnávací paměti dat, která je před aktuální pozici znaku znaku. |
| Reset() |
Inicializuje všechny informace o datech a stavu, které se týkají 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) |