Sdílet prostřednictvím


DecoderFallback Třída

Definice

Poskytuje mechanismus zpracování selhání, označovaný jako záložní, pro zakódovanou vstupní bajtovou sekvenci, kterou nelze převést na výstupní znak.

public ref class DecoderFallback abstract
public abstract class DecoderFallback
[System.Serializable]
public abstract class DecoderFallback
type DecoderFallback = class
[<System.Serializable>]
type DecoderFallback = class
Public MustInherit Class DecoderFallback
Dědičnost
DecoderFallback
Odvozené
Atributy

Poznámky

Kódování mapuje znak Unicode na zakódovanou sekvenci bajtů. Konkrétní kódování je reprezentováno typem, který je odvozen od Encoding třídy. Konkrétně se znak kóduje do posloupnosti bajtů voláním metody typu Encoding.GetBytes kódování a sekvence bajtů je dekódována na pole znaků nebo řetězec voláním Encoding.GetChars metody nebo Encoding.GetString .

Operace dekódování může selhat, pokud vstupní posloupnost bajtů nelze namapovat kódováním. Například objekt nemůže dekódovat bajtovou sekvenci, ASCIIEncoding pokud tato sekvence představuje znak, který má hodnotu bodu kódu, která je mimo rozsah U+0000 až U+007F.

Pokud dekódování převod nelze provést, rozhraní .NET Framework poskytuje mechanismus zpracování selhání, který se nazývá náhradní. Vaše aplikace může používat předdefinované záložní dekodéry rozhraní .NET Framework nebo může vytvořit vlastní záložní dekodér odvozený z DecoderFallback tříd a DecoderFallbackBuffer .

DecoderFallback a DecoderFallbackBuffer jsou základní třídy pro všechny obslužné rutiny dekódování v rozhraní .NET Framework. Podporují následující tři druhy náhradních mechanismů zpracování:

  • Nejvhodnější náhradní znaky, které mapují platné znaky Unicode, které nelze dekódovat na přibližný ekvivalent. Například nejvhodnější obslužná rutina pro ASCIIEncoding třídu může mapovat Æ (U+00C6) na AE (U+0041 + U+0045). Je také možné implementovat nejvhodnější obslužnou rutinu pro přepis jedné abecedy (například cyrilice) na jinou (například latinku nebo římskou). Rozhraní .NET Framework neposkytuje žádné veřejné nejvhodnější náhradní implementace.

  • Náhradní náhradní, která nahradí každý znak, který nelze dekódovat předdefinovaným řetězcem. Rozhraní .NET Framework poskytuje předdefinovanou náhradní náhradní obslužnou rutinu. Třída DecoderReplacementFallback nahradí každou posloupnost bajtů, kterou nelze dekódovat, znakem otazníku ("?", nebo U+003F) nebo ZNAKEM NAHRAZENÍ (U+FFFD). Náhradní řetězec můžete přizpůsobit zadáním náhrady ve volání konstruktoru DecoderReplacementFallback.DecoderReplacementFallback(String) . Po vygenerování náhradního řetězce pokračuje operace dekódování v převodu zbytku vstupu.

  • Náhradní výjimka, která vyvolá výjimku, když nelze dekódovat posloupnost bajtů. Rozhraní .NET Framework poskytuje předdefinovanou obslužnou rutinu náhradní výjimky. Třída DecoderExceptionFallback vyvolá DecoderFallbackException chybu, když dojde k neplatné posloupnosti bajtů a operace dekódování se ukončí.

Pokud se rozhodnete implementovat vlastní řešení, musíte přepsat následující abstraktní členy DecoderFallback třídy:

  • Metoda CreateFallbackBuffer , která vrací instanci třídy odvozenou z DecoderFallbackBuffer. V závislosti na typu náhradní obslužné rutiny, kterou vyvíjíte, DecoderFallbackBuffer je implementace zodpovědná za provedení mapování nebo nahrazení nebo za vyvolání výjimky.

  • Vlastnost MaxCharCount , která vrátí maximální počet znaků, které může záložní implementace vrátit. U náhradní obslužné rutiny výjimky by její hodnota měla být nula.

Další informace o kódování, dekódování a záložních strategiích najdete v tématu Kódování znaků v rozhraní .NET Framework.

Konstruktory

DecoderFallback()

Inicializuje novou instanci DecoderFallback třídy.

Vlastnosti

ExceptionFallback

Získá objekt, který vyvolá výjimku, když vstupní posloupnost bajtů nelze dekódovat.

MaxCharCount

Při přepsání v odvozené třídě získá maximální počet znaků, které aktuální DecoderFallback objekt může vrátit.

ReplacementFallback

Získá objekt, který výstup náhradní řetězec místo vstupní bajt sekvence, který nelze dekódovat.

Metody

CreateFallbackBuffer()

Při přepsání v odvozené třídě inicializuje novou instanci DecoderFallbackBuffer třídy.

Equals(Object)

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

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

Slouží jako výchozí hashovací funkce.

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

Získá aktuální Type instanci.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

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

(Zděděno od Object)

Platí pro

Viz také