Encoding.RegisterProvider(EncodingProvider) Метод

Определение

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

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

Параметры

provider
EncodingProvider

Подкласс класса EncodingProvider, который предоставляет доступ к дополнительным кодировкам символов.A subclass of EncodingProvider that provides access to additional character encodings.

Атрибуты

Исключения

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

Комментарии

RegisterProviderМетод позволяет зарегистрировать класс, производный от EncodingProvider , который делает кодировки символов доступными на платформе, которая не поддерживает их в других случаях.The RegisterProvider method allows you to register a class derived from EncodingProvider that makes character encodings available on a platform that does not otherwise support them. После регистрации поставщика кодировок можно извлечь поддерживаемые им кодировки, вызвав любую Encoding.GetEncoding перегрузку.Once the encoding provider is registered, the encodings that it supports can be retrieved by calling any Encoding.GetEncoding overload. При наличии нескольких поставщиков кодировок Encoding.GetEncoding метод пытается получить указанную кодировку от каждого поставщика, начиная с последней зарегистрированной.If there are multiple encoding providers, the Encoding.GetEncoding method attempts to retrieve a specified encoding from each provider starting with the one most recently registered.

Регистрация поставщика кодирования с помощью RegisterProvider метода также изменяет поведение методов Encoding. Encoding (Int32) и EncodingProvider. Encoding (Int32, EncoderFallback, DecoderFallback) при передаче аргумента 0 :Registering an encoding provider by using the RegisterProvider method also modifies the behavior of the Encoding.GetEncoding(Int32) and EncodingProvider.GetEncoding(Int32, EncoderFallback, DecoderFallback) methods when passed an argument of 0:

  • Если зарегистрированный поставщик — CodePagesEncodingProvider , метод возвращает кодировку, соответствующую системной активной кодовой странице при работе в операционной системе Windows.If the registered provider is the CodePagesEncodingProvider, the method returns the encoding that matches the system active code page when running on the Windows operating system.

  • Пользовательский поставщик кодировок может выбрать, какую кодировку следует возвращать, когда любой из этих GetEncoding перегрузок метода передается аргументом 0 .A custom encoding provider can choose which encoding to return when either of these GetEncoding method overloads is passed an argument of 0. Поставщик может также выбрать не возвращать кодировку, выполнив EncodingProvider.GetEncoding возврат метода null .The provider can also choose to not return an encoding by having the EncodingProvider.GetEncoding method return null.

Начиная с .NET Framework 4,6 .NET Framework включает один поставщик кодировок, CodePagesEncodingProvider который делает кодировки, присутствующие в полной .NET Framework, но недоступные в универсальная платформа Windows.Starting with .NET Framework 4.6, .NET Framework includes one encoding provider, CodePagesEncodingProvider, that makes the encodings available that are present in the full .NET Framework but are not available in the Universal Windows Platform. По умолчанию универсальная платформа Windows поддерживает только кодировки Юникода, ASCII и кодовую страницу 28591.By default, the Universal Windows Platform only supports the Unicode encodings, ASCII, and code page 28591.

Если один и тот же поставщик кодирования используется в нескольких вызовах RegisterProvider метода, поставщик регистрируется только в первом вызове метода.If the same encoding provider is used in multiple calls to the RegisterProvider method, only the first method call registers the provider. Последующие вызовы игнорируются.Subsequent calls are ignored.

Если RegisterProvider метод вызывается для регистрации нескольких поставщиков, обрабатывающих одну и ту же кодировку, последний зарегистрированный поставщик используется для всех операций кодирования и декодирования.If the RegisterProvider method is called to register multiple providers that handle the same encoding, the last registered provider is the used for all encoding and decoding operations. Все ранее зарегистрированные поставщики игнорируются.Any previously registered providers are ignored.

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

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