DecoderFallback Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia mechanizm obsługi błędów nazywany rezerwą dla zakodowanej sekwencji bajtów wejściowych, których nie można przekonwertować na znak wyjściowy.
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
- Dziedziczenie
-
DecoderFallback
- Pochodne
- Atrybuty
Uwagi
Kodowanie mapuje znak Unicode na zakodowaną sekwencję bajtów. Określone kodowanie jest reprezentowane przez typ, który pochodzi z Encoding klasy. W szczególności znak jest zakodowany w sekwencji bajtów przez wywołanie metody typu Encoding.GetBytes kodowania, a sekwencja bajtów jest dekodowana do tablicy znaków lub ciągu przez wywołanie Encoding.GetChars metody or Encoding.GetString .
Operacja dekodowania może zakończyć się niepowodzeniem, jeśli nie można zamapować sekwencji bajtów wejściowych przez kodowanie. Na przykład obiekt nie może dekodować sekwencji bajtów, ASCIIEncoding jeśli ta sekwencja reprezentuje znak, który ma wartość punktu kodu, która znajduje się poza zakresem U+0000 do U+007F.
Gdy nie można wykonać konwersji dekodowania, .NET Framework zapewnia mechanizm obsługi błędów nazywany rezerwą. Aplikacja może używać wstępnie zdefiniowanych .NET Framework rezerwowych dekoderów lub utworzyć rezerwowy dekoder niestandardowy pochodzący z DecoderFallback klas iDecoderFallbackBuffer.
DecoderFallbacki DecoderFallbackBuffer są klasami podstawowymi dla wszystkich dekodujących rezerwowych programów obsługi w .NET Framework. Obsługują one następujące trzy rodzaje mechanizmów obsługi rezerwowej:
Najlepsze dopasowanie rezerwowe, które mapuje prawidłowe znaki Unicode, których nie można dekodować do przybliżonego odpowiednika. Na przykład najlepiej dopasowany program obsługi rezerwowej dla ASCIIEncoding klasy może mapować Æ (U+00C6) na AE (U+0041 + U+0045). Najlepiej dopasowany program obsługi rezerwowej może być również zaimplementowany w celu transliterowania jednego alfabetu (takiego jak cyrylica) do innego (takiego jak łaciński lub rzymski). .NET Framework nie zapewnia żadnych publicznych najlepiej dopasowanych implementacji rezerwowych.
Rezerwowa zamiana, która zastępuje każdy znak, którego nie można zdekodować przy użyciu wstępnie zdefiniowanego ciągu. .NET Framework udostępnia wstępnie zdefiniowany program obsługi rezerwowej zamiany. Klasa DecoderReplacementFallback zastępuje każdą sekwencję bajtów, której nie można dekodować znakiem znaku zapytania ("?", lub U+003F) lub znakiem ZASTĘPCZYm (U+FFFD). Możesz dostosować ciąg zastępczy, określając substytut w wywołaniu konstruktora DecoderReplacementFallback.DecoderReplacementFallback(String) . Po emisji ciągu zastępczego operacja dekodowania kontynuuje konwertowanie reszty danych wejściowych.
Powrót wyjątku, który zgłasza wyjątek, gdy nie można zdekodować sekwencji bajtów. .NET Framework udostępnia wstępnie zdefiniowaną procedurę obsługi rezerwowej wyjątków. Klasa DecoderExceptionFallback zgłasza błąd DecoderFallbackException , gdy napotkana jest nieprawidłowa sekwencja bajtów, a operacja dekodowania kończy się.
Jeśli zdecydujesz się zaimplementować rozwiązanie niestandardowe, musisz zastąpić następujące abstrakcyjne elementy członkowskie DecoderFallback klasy:
Metoda CreateFallbackBuffer , która zwraca wystąpienie klasy pochodzące z DecoderFallbackBufferklasy . W zależności od typu programu obsługi rezerwowej, którą tworzysz, DecoderFallbackBuffer implementacja jest odpowiedzialna za wykonywanie mapowania lub zamiany albo zgłaszanie wyjątku.
Właściwość MaxCharCount , która zwraca maksymalną liczbę znaków, którą może zwrócić implementacja rezerwowa. W przypadku procedury obsługi rezerwowej wyjątku jego wartość powinna być równa zero.
Aby uzyskać więcej informacji na temat kodowania, dekodowania i strategii rezerwowych, zobacz Kodowanie znaków w .NET Framework.
Konstruktory
DecoderFallback() |
Inicjuje nowe wystąpienie klasy DecoderFallback. |
Właściwości
ExceptionFallback |
Pobiera obiekt, który zgłasza wyjątek, gdy nie można zdekodować sekwencji bajtów wejściowych. |
MaxCharCount |
Po przesłonięciu w klasie pochodnej maksymalna liczba znaków, które może zwrócić bieżący DecoderFallback obiekt. |
ReplacementFallback |
Pobiera obiekt, który generuje ciąg zastępczy zamiast sekwencji bajtów wejściowych, której nie można zdekodować. |
Metody
CreateFallbackBuffer() |
Po przesłonięciu w klasie pochodnej inicjuje nowe wystąpienie DecoderFallbackBuffer klasy. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |