Encoding.RegisterProvider(EncodingProvider) Метод

Определение

Регистрирует поставщик кодировки.

public:
 static void RegisterProvider(System::Text::EncodingProvider ^ provider);
[System.Security.SecurityCritical]
public static void RegisterProvider (System.Text.EncodingProvider provider);
public static void RegisterProvider (System.Text.EncodingProvider provider);
[<System.Security.SecurityCritical>]
static member RegisterProvider : System.Text.EncodingProvider -> unit
static member RegisterProvider : System.Text.EncodingProvider -> unit
Public Shared Sub RegisterProvider (provider As EncodingProvider)

Параметры

provider
EncodingProvider

Подкласс класса EncodingProvider, который предоставляет доступ к дополнительным кодировкам символов.

Атрибуты

Исключения

provider имеет значение null.

Комментарии

RegisterProviderМетод позволяет зарегистрировать класс, производный от EncodingProvider , который делает кодировки символов доступными на платформе, которая не поддерживает их в других случаях. После регистрации поставщика кодировок можно извлечь поддерживаемые им кодировки, вызвав любую Encoding.GetEncoding перегрузку. При наличии нескольких поставщиков кодировок Encoding.GetEncoding метод пытается получить указанную кодировку от каждого поставщика, начиная с последней зарегистрированной.

Регистрация поставщика кодирования с помощью RegisterProvider метода также изменяет поведение методов Encoding. Encoding (Int32) и EncodingProvider. Encoding (Int32, EncoderFallback, DecoderFallback) при передаче аргумента 0 :

  • Если зарегистрированный поставщик — CodePagesEncodingProvider , метод возвращает кодировку, соответствующую системной активной кодовой странице при работе в операционной системе Windows.

  • Пользовательский поставщик кодировок может выбрать, какую кодировку следует возвращать, когда любой из этих GetEncoding перегрузок метода передается аргументом 0 . Поставщик может также выбрать не возвращать кодировку, выполнив EncodingProvider.GetEncoding возврат метода null .

Начиная с .NET Framework 4,6 .NET Framework включает один поставщик кодировок, CodePagesEncodingProvider который делает кодировки, присутствующие в полной .NET Framework, но недоступные в универсальная платформа Windows. По умолчанию универсальная платформа Windows поддерживает только кодировки Юникода, ASCII и кодовую страницу 28591.

Если один и тот же поставщик кодирования используется в нескольких вызовах RegisterProvider метода, поставщик регистрируется только в первом вызове метода. Последующие вызовы игнорируются.

Если RegisterProvider метод вызывается для регистрации нескольких поставщиков, обрабатывающих одну и ту же кодировку, последний зарегистрированный поставщик используется для всех операций кодирования и декодирования. Все ранее зарегистрированные поставщики игнорируются.

Применяется к

См. также раздел