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.
Конструкторы
| Имя | Описание |
|---|---|
| DecoderFallback() |
Инициализирует новый экземпляр класса DecoderFallback. |
Свойства
| Имя | Описание |
|---|---|
| ExceptionFallback |
Возвращает объект, который вызывает исключение, если входная последовательность байтов не может быть декодирована. |
| MaxCharCount |
При переопределении в производном классе получает максимальное количество символов, возвращаемых текущим DecoderFallback объектом. |
| ReplacementFallback |
Возвращает объект, который выводит замещающую строку вместо входной байтовой последовательности, которая не может быть декодирована. |
Методы
| Имя | Описание |
|---|---|
| CreateFallbackBuffer() |
При переопределении в производном классе инициализирует новый экземпляр DecoderFallbackBuffer класса. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |