Nyelv

Encoding.RegisterProvider(EncodingProvider) Metódus

Definíció

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 codepage a 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.
  • 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ól null való 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.

A következőre érvényes:

Lásd még