Encoding.RegisterProvider(EncodingProvider) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zaregistruje zprostředkovatele kódování.
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)
Parametry
- provider
- EncodingProvider
Podtřída EncodingProvider , která poskytuje přístup k dalším kódováním znaků.
- Atributy
Výjimky
provider je null.
Poznámky
Metoda RegisterProvider umožňuje zaregistrovat třídu odvozenou z EncodingProvider toho, že zpřístupňuje kódování znaků na platformě, která je jinak nepodporuje. Jakmile je zprostředkovatel kódování zaregistrovaný, kódování, které podporuje, lze načíst voláním jakéhokoli Encoding.GetEncoding přetížení. Pokud existuje více zprostředkovatelů kódování, Encoding.GetEncoding metoda se pokusí načíst zadané kódování od každého zprostředkovatele počínaje jedním z naposledy registrovaných.
Registrace zprostředkovatele kódování pomocí RegisterProvider metody také ovlivňuje chování GetEncoding(Int32) při předání argumentu 0. To je zvlášť důležité v .NET Core a novějších verzích, kdy výchozí chování pro GetEncoding(Int32) s codepage 0 je vrátit UTF-8:
Pokud je registrovaný zprostředkovatel CodePagesEncodingProvider:
- Na WindowsGetEncoding(Int32) s
codepage0 vrátí kódování odpovídající aktivní znakové stránce systému (stejné jako chování rozhraní .NET Framework). - Na platformách non-Windows stále vrací UTF-8.
- Na WindowsGetEncoding(Int32) s
Pokud je zaregistrovaný vlastní zprostředkovatel kódování: Zprostředkovatel může zvolit, které kódování se má vrátit při GetEncoding(Int32) předání argumentu
0. Zprostředkovatel se také může rozhodnout, že tento případ nezpracuje taknull, že se vrátí ze své EncodingProvider.GetEncoding metody, v takovém případě se použije výchozí chování UTF-8.
Pokud je zaregistrovaných více poskytovatelů, GetEncoding(Int32) pokusí se nejprve načíst kódování od naposledy registrovaného zprostředkovatele.
Počínaje .NET Framework 4.6 zahrnuje .NET Framework jednoho zprostředkovatele kódování, CodePagesEncodingProvider, který zpřístupňuje kódování, které jsou k dispozici v plném .NET Frameworku, ale nejsou dostupné v Univerzální platforma Windows. Ve výchozím nastavení Univerzální platforma Windows podporuje pouze kódování Unicode, ASCII a znakovou stránku 28591.
Pokud se stejný zprostředkovatel kódování používá ve více voláních metody RegisterProvider , zaregistruje ho pouze první volání metody. Další volání se ignorují.
RegisterProvider Pokud je volána metoda pro registraci více zprostředkovatelů, kteří zpracovávají stejné kódování, poslední registrovaný zprostředkovatel je použit pro všechny operace kódování a dekódování. Všechny dříve registrované poskytovatele se ignorují.