Encoding.RegisterProvider(EncodingProvider) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra un provider di codifica.
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)
Parametri
- provider
- EncodingProvider
Sottoclasse di EncodingProvider che fornisce l'accesso a codifiche di caratteri aggiuntive.
- Attributi
Eccezioni
provider è null.
Commenti
Il RegisterProvider metodo consente di registrare una classe derivata da EncodingProvider che rende disponibili codifiche di caratteri in una piattaforma che non le supporta in altro modo. Dopo aver registrato il provider di codifica, le codifiche supportate possono essere recuperate chiamando qualsiasi Encoding.GetEncoding overload. Se sono presenti più provider di codifica, il Encoding.GetEncoding metodo tenta di recuperare una codifica specificata da ogni provider a partire da quella registrata più di recente.
La registrazione di un provider di codifica tramite il RegisterProvider metodo influisce anche sul comportamento di GetEncoding(Int32) quando viene passato un argomento di 0. Ciò è particolarmente importante in .NET Core e versioni successive in cui il comportamento predefinito per GetEncoding(Int32) con codepage 0 consiste nel restituire UTF-8:
Se il provider registrato è CodePagesEncodingProvider:
- In WindowsGetEncoding(Int32) con
codepage0 restituisce la codifica corrispondente alla tabella codici attiva del sistema (uguale al comportamento di .NET Framework). - Nelle piattaforme non Windows restituisce comunque UTF-8.
- In WindowsGetEncoding(Int32) con
Se viene registrato un provider di codifica personalizzato: il provider può scegliere la codifica da restituire quando GetEncoding(Int32) viene passato un argomento di
0. Il provider può anche scegliere di non gestire questo caso restituendonulldal relativo EncodingProvider.GetEncoding metodo, nel qual caso viene usato il comportamento UTF-8 predefinito.
Se sono registrati più provider, GetEncoding(Int32) tenta di recuperare prima la codifica dal provider registrato più di recente.
A partire da .NET Framework 4.6, .NET Framework include un provider di codifica, CodePagesEncodingProvider, che rende disponibili le codifiche presenti nel framework completo .NET ma non sono disponibili nel piattaforma UWP (Universal Windows Platform). Per impostazione predefinita, il piattaforma UWP (Universal Windows Platform) supporta solo le codifiche Unicode, ASCII e tabella codici 28591.
Se lo stesso provider di codifica viene usato in più chiamate al RegisterProvider metodo, solo la prima chiamata al metodo registra il provider. Le chiamate successive vengono ignorate.
Se il RegisterProvider metodo viene chiamato per registrare più provider che gestiscono la stessa codifica, l'ultimo provider registrato viene usato per tutte le operazioni di codifica e decodifica. Tutti i provider registrati in precedenza vengono ignorati.