DecoderFallback Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет механизм обработки ошибок, называемый резервным вариантом, закодированной входной последовательности байтов, которая не может быть преобразована в выходной символ.
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
- Наследование
-
DecoderFallback
- Производный
- Атрибуты
Кодирование сопоставляет символ Юникода с закодированной последовательностью байтов. Определенная кодировка представлена типом, производным от Encoding класса . В частности, символ кодируется в последовательность байтов путем вызова метода типа Encoding.GetBytes кодирования, а последовательность байтов декодируется в массив символов или строку путем вызова Encoding.GetChars метода или Encoding.GetString .
Операция декодирования может завершиться ошибкой, если входная последовательность байтов не может быть сопоставлена кодировкой. Например, объект не может декодировать последовательность байтов, ASCIIEncoding если она представляет символ, имеющий значение кодовой точки, которое находится за пределами диапазона от U+0000 до U+007F.
Если преобразование декодирования не может быть выполнено, платформа .NET Framework предоставляет механизм обработки сбоев, называемый резервным. Приложение может использовать предопределенные платформа .NET Framework резервные декодеры или создать резервную функцию пользовательского DecoderFallback декодера, производную от классов и DecoderFallbackBuffer .
DecoderFallbackи DecoderFallbackBuffer являются базовыми классами для всех обработчиков декодирования резервных элементов в платформа .NET Framework. Они поддерживают следующие три типа резервных механизмов обработки:
Оптимальный вариант, который сопоставляет допустимые символы Юникода, которые не могут быть декодированы, с приблизительным эквивалентом. Например, оптимальный резервный обработчик для ASCIIEncoding класса может сопоставить Æ (U+00C6) с AE (U+0041 + U+0045). Можно также реализовать оптимальный резервный обработчик для транслитерации одного алфавита (например, кириллицы) в другой (например, латинский или римский). Платформа .NET Framework не предоставляет общедоступных оптимальных резервных реализаций.
Резервная замена, которая заменяет каждый символ, который не может быть декодирован предопределенной строкой. Платформа .NET Framework предоставляет предопределенный резервный обработчик замены. Класс DecoderReplacementFallback заменяет каждую последовательность байтов, которую невозможно декодировать, символом вопросительного знака ("?", U+003F) или СИМВОЛОМ ЗАМЕНЫ (U+FFFD). Строку замены можно настроить, указав замену в вызове конструктора DecoderReplacementFallback.DecoderReplacementFallback(String) . После вывода замещающей строки операция декодирования продолжает преобразование оставшейся части входных данных.
Резервный вариант исключения, который создает исключение, если последовательность байтов не может быть декодирована. Платформа .NET Framework предоставляет предопределенный резервный обработчик исключений. Класс DecoderExceptionFallback создает исключение при DecoderFallbackException обнаружении недопустимой последовательности байтов, а операция декодирования завершается.
Если вы решили реализовать пользовательское решение, необходимо переопределить следующие абстрактные члены DecoderFallback класса :
Метод CreateFallbackBuffer , который возвращает экземпляр класса, производный от DecoderFallbackBuffer. В зависимости от типа разрабатываемого DecoderFallbackBuffer резервного обработчика реализация отвечает за сопоставление или замену, а также за создание исключения.
Свойство MaxCharCount , которое возвращает максимальное количество символов, которое может вернуть реализация резервного восстановления. Для резервного обработчика исключений его значение должно быть равно нулю.
Дополнительные сведения о стратегиях кодирования, декодирования и резервного копирования см. в разделе Кодировка символов в платформа .NET Framework.
Decoder |
Инициализирует новый экземпляр класса DecoderFallback. |
Exception |
Получает объект, который создает исключение, если входная последовательность байтов не может быть декодирована. |
Max |
При переопределении в производном классе возвращает максимальное число символов, которые могут быть возвращены текущим объектом DecoderFallback. |
Replacement |
Получает объект, выводящий замещающую строку вместо входной последовательности байтов, которая не может быть декодирована. |
Create |
При переопределении в производном классе инициализирует новый экземпляр класса DecoderFallbackBuffer. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |