Encoding.RegisterProvider(EncodingProvider) Metode

Definisi

Mendaftarkan penyedia pengodean.

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)

Parameter

provider
EncodingProvider

Subkelas EncodingProvider yang menyediakan akses ke pengodean karakter tambahan.

Atribut

Pengecualian

provider adalah null.

Keterangan

Metode ini RegisterProvider memungkinkan Anda untuk mendaftarkan kelas yang berasal dari EncodingProvider yang membuat pengodean karakter tersedia di platform yang tidak mendukungnya. Setelah penyedia pengodean terdaftar, pengodean yang didukungnya dapat diambil dengan memanggil Encoding.GetEncoding kelebihan beban. Jika ada beberapa penyedia pengodean, Encoding.GetEncoding metode ini mencoba mengambil pengodean tertentu dari setiap penyedia yang dimulai dengan yang terakhir didaftarkan.

Mendaftarkan penyedia pengodean dengan menggunakan RegisterProvider metode ini juga memengaruhi perilaku GetEncoding(Int32) ketika melewati argumen .0 Ini sangat penting dalam .NET Core dan versi yang lebih baru di mana perilaku default untuk GetEncoding(Int32) dengan codepage 0 adalah mengembalikan UTF-8:

  • Jika penyedia terdaftar adalah CodePagesEncodingProvider:

    • Pada Windows, GetEncoding(Int32) dengan codepage 0 mengembalikan pengodean yang cocok dengan halaman kode aktif sistem (sama dengan perilaku .NET Framework).
    • Pada platform non-Windows, platform masih mengembalikan UTF-8.
  • Jika penyedia pengodean kustom terdaftar: Penyedia dapat memilih pengodean mana yang akan dikembalikan ketika GetEncoding(Int32) diteruskan argumen .0 Penyedia juga dapat memilih untuk tidak menangani kasus ini dengan mengembalikan null dari metodenya EncodingProvider.GetEncoding , dalam hal ini perilaku UTF-8 default digunakan.

Jika beberapa penyedia terdaftar, GetEncoding(Int32) upaya untuk mengambil pengodean dari penyedia yang paling baru terdaftar terlebih dahulu.

Dimulai dengan .NET Framework 4.6, .NET Framework mencakup satu penyedia pengodean, CodePagesEncodingProvider, yang membuat pengodean tersedia yang ada dalam kerangka kerja .NET lengkap tetapi tidak tersedia di Platform Windows Universal. Secara default, Platform Windows Universal hanya mendukung pengodean Unicode, ASCII, dan halaman kode 28591.

Jika penyedia pengodean yang sama digunakan dalam beberapa panggilan ke RegisterProvider metode , hanya panggilan metode pertama yang mendaftarkan penyedia. Panggilan berikutnya diabaikan.

Jika metode dipanggil RegisterProvider untuk mendaftarkan beberapa penyedia yang menangani pengodean yang sama, penyedia terdaftar terakhir adalah yang digunakan untuk semua operasi pengodean dan dekode. Setiap penyedia yang terdaftar sebelumnya diabaikan.

Berlaku untuk

Lihat juga