Encoding.RegisterProvider(EncodingProvider) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Registrerar en kodningsprovider.
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)
Parametrar
- provider
- EncodingProvider
En underklass av EncodingProvider som ger åtkomst till ytterligare teckenkodningar.
- Attribut
Undantag
provider är null.
Kommentarer
Med RegisterProvider metoden kan du registrera en klass härledd från EncodingProvider som gör teckenkodningar tillgängliga på en plattform som annars inte stöder dem. När kodningsprovidern har registrerats kan kodningarna som den stöder hämtas genom att anropa eventuell Encoding.GetEncoding överbelastning. Om det finns flera kodningsproviders Encoding.GetEncoding försöker metoden hämta en angiven kodning från varje provider som börjar med den som senast registrerades.
Registrering av en kodningsprovider med hjälp RegisterProvider av metoden påverkar också beteendet GetEncoding(Int32) för när ett argument för 0. Detta är särskilt viktigt i .NET Core och senare versioner där standardbeteendet för GetEncoding(Int32) med codepage 0 är att returnera UTF-8:
Om den registrerade providern är CodePagesEncodingProvider:
- På Windows returnerar GetEncoding(Int32) med
codepage0 kodningen som matchar systemets aktiva kodsida (samma som .NET Framework-beteende). - På non-Windows plattformar returnerar den fortfarande UTF-8.
- På Windows returnerar GetEncoding(Int32) med
Om en anpassad kodningsprovider är registrerad: Providern kan välja vilken kodning som ska returneras när GetEncoding(Int32) skickas ett argument för
0. Providern kan också välja att inte hantera det här fallet genom attnullreturnera från sin EncodingProvider.GetEncoding metod, i vilket fall standardbeteendet UTF-8 används.
Om flera leverantörer registreras GetEncoding(Int32) försöker du hämta kodningen från den senast registrerade providern först.
Från och med .NET Framework 4.6 innehåller .NET Framework en kodningsprovider, CodePagesEncodingProvider, som gör kodningarna tillgängliga som finns i hela .NET Framework men inte är tillgängliga i Universell Windows-plattform. Som standard stöder Universell Windows-plattform endast Unicode-kodningar, ASCII och kodsida 28591.
Om samma kodningsprovider används i flera anrop till RegisterProvider metoden registrerar endast det första metodanropet providern. Efterföljande anrop ignoreras.
RegisterProvider Om metoden anropas för att registrera flera leverantörer som hanterar samma kodning, används den senast registrerade providern för alla kodnings- och avkodningsåtgärder. Alla tidigare registrerade leverantörer ignoreras.