Encoding.RegisterProvider(EncodingProvider) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Kódolási szolgáltatót regisztrál.
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)
Paraméterek
- provider
- EncodingProvider
Ennek alosztálya EncodingProvider további karakterkódolásokhoz biztosít hozzáférést.
- Attribútumok
Kivételek
provider az null.
Megjegyzések
A RegisterProvider módszer lehetővé teszi egy olyan osztály regisztrálását, amelyből a EncodingProvider karakterkódolások elérhetővé válnak egy olyan platformon, amely egyébként nem támogatja őket. A kódolásszolgáltató regisztrálása után az általa támogatott kódolások lekérhetők bármilyen Encoding.GetEncoding túlterhelés meghívásával. Ha több kódolásszolgáltató is létezik, a Encoding.GetEncoding metódus megpróbál lekérni egy megadott kódolást az egyes szolgáltatóktól a legutóbb regisztrálttól kezdve.
A kódolási szolgáltató metódussal RegisterProvider történő regisztrálása a függvény argumentumát átadó függvény viselkedésére GetEncoding(Int32)0is hatással van. Ez különösen fontos .NET Core és újabb verziókban, ahol a GetEncoding(Int32) és codepage 0 alapértelmezett viselkedése az UTF-8 visszaadása:
Ha a regisztrált szolgáltató a következő CodePagesEncodingProvider:
- A WindowsGetEncoding(Int32) 0
codepagea rendszer aktív kódlapjának megfelelő kódolást adja vissza (ugyanaz, mint .NET Keretrendszer viselkedése). - A non-Windows platformokon továbbra is UTF-8 értéket ad vissza.
- A WindowsGetEncoding(Int32) 0
Ha egy egyéni kódolási szolgáltató regisztrálva van: A szolgáltató kiválaszthatja, hogy melyik kódolást adja vissza, amikor GetEncoding(Int32) a függvény argumentumot
0ad vissza. A szolgáltató dönthet úgy is, hogy nem kezeli ezt az esetet a metódusbólnullvaló EncodingProvider.GetEncoding visszatéréssel, ebben az esetben az alapértelmezett UTF-8 viselkedést használja.
Ha több szolgáltató van regisztrálva, GetEncoding(Int32) először megpróbálja lekérni a kódolást a legutóbb regisztrált szolgáltatótól.
A .NET Framework 4.6-tól kezdve a .NET Framework tartalmaz egy kódolási szolgáltatót, CodePagesEncodingProvider, amely elérhetővé teszi a kódolásokat, amelyek a teljes .NET keretrendszerben találhatók, de nem érhetők el a Univerzális Windows-platform. Alapértelmezés szerint a Univerzális Windows-platform csak a Unicode-kódolásokat, az ASCII-t és a kódlap 28591-et támogatja.
Ha ugyanazt a kódolási szolgáltatót használja a metódus több hívásánál RegisterProvider is, csak az első metódushívás regisztrálja a szolgáltatót. A rendszer figyelmen kívül hagyja a későbbi hívásokat.
Ha a RegisterProvider metódus több, azonos kódolást kezelő szolgáltató regisztrálására van meghívva, az utolsó regisztrált szolgáltató az összes kódolási és dekódolási művelethez használatos. A rendszer figyelmen kívül hagyja a korábban regisztrált szolgáltatókat.