Encoding.RegisterProvider(EncodingProvider) メソッド

定義

エンコーディング プロバイダーを登録します。Registers an encoding 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
Public Shared Sub RegisterProvider (provider As EncodingProvider)

パラメーター

provider
EncodingProvider

追加の文字エンコーディングへのアクセスを提供する EncodingProvider のサブクラス。A subclass of EncodingProvider that provides access to additional character encodings.

属性

例外

providernullです。provider is null.

注釈

メソッドを使用すると、からEncodingProvider派生したクラスを登録して、それ以外の方法でサポートされないプラットフォームで文字エンコーディングを使用できるようにすることができます。 RegisterProviderThe 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.getencoding (int32)メソッドと「encodingprovider」 (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 には、完全な .NET Framework に存在CodePagesEncodingProviderするが、ユニバーサル Windows プラットフォームでは使用できないエンコーディングプロバイダーが1つ含まれています。Starting with the .NET Framework 4.6, the .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 プラットフォームは Unicode エンコーディング、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.

同じエンコーディングを処理する複数のプロバイダーを登録するためにメソッドが呼び出された場合、最後に登録されたプロバイダーは、すべてのエンコードおよびデコード操作に使用されるです。RegisterProviderIf 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.

適用対象

こちらもご覧ください