Encoding.RegisterProvider(EncodingProvider) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert einen Codierungsanbieter.
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)
Parameter
- provider
- EncodingProvider
Eine Unterklasse, die EncodingProvider Zugriff auf zusätzliche Zeichencodierungen bietet.
- Attribute
Ausnahmen
provider ist null.
Hinweise
Mit der RegisterProvider Methode können Sie eine Von dieser Klasse abgeleitete Klasse registrieren, die EncodingProvider Zeichencodierungen auf einer Plattform zur Verfügung stellt, die sie andernfalls nicht unterstützt. Nachdem der Codierungsanbieter registriert wurde, können die unterstützten Codierungen durch Aufrufen einer überladenen Encoding.GetEncoding Datei abgerufen werden. Wenn mehrere Codierungsanbieter vorhanden sind, versucht die Encoding.GetEncoding Methode, eine angegebene Codierung von jedem Anbieter ab dem zuletzt registrierten abzurufen.
Das Registrieren eines Codierungsanbieters mithilfe der RegisterProvider Methode wirkt sich auch auf das Verhalten des GetEncoding(Int32) übergebenen Arguments aus 0. Dies ist besonders wichtig in .NET Core- und höheren Versionen, bei denen das Standardverhalten für GetEncoding(Int32) mit codepage 0 das Zurückgeben von UTF-8 ist:
Wenn der registrierte Anbieter lautet CodePagesEncodingProvider:
- Auf Windows gibt GetEncoding(Int32) mit
codepage0 die Codierung zurück, die der aktiven Codeseite des Systems entspricht (identisch mit .NET Framework-Verhalten). - Auf non-Windows-Plattformen gibt sie weiterhin UTF-8 zurück.
- Auf Windows gibt GetEncoding(Int32) mit
Wenn ein benutzerdefinierter Codierungsanbieter registriert ist: Der Anbieter kann auswählen, welche Codierung zurückgegeben werden soll, wenn GetEncoding(Int32) ein Argument von
0. Der Anbieter kann diesen Fall auch nicht behandeln, indem er von seiner EncodingProvider.GetEncoding Methode zurückgibtnull. In diesem Fall wird das standardmäßige UTF-8-Verhalten verwendet.
Wenn mehrere Anbieter registriert sind, wird zuerst versucht, GetEncoding(Int32) die Codierung vom zuletzt registrierten Anbieter abzurufen.
Ab .NET Framework 4.6 enthält .NET Framework einen Codierungsanbieter, CodePagesEncodingProvider, der die Codierungen verfügbar macht, die im vollständigen .NET Framework vorhanden sind, aber nicht im Universelle Windows-Plattform verfügbar sind. Standardmäßig unterstützt die Universelle Windows-Plattform nur die Unicode-Codierungen, ASCII und Codepage 28591.
Wenn derselbe Codierungsanbieter in mehreren Aufrufen der RegisterProvider Methode verwendet wird, registriert nur der erste Methodenaufruf den Anbieter. Nachfolgende Aufrufe werden ignoriert.
Wenn die RegisterProvider Methode aufgerufen wird, um mehrere Anbieter zu registrieren, die dieselbe Codierung verarbeiten, wird der letzte registrierte Anbieter für alle Codierungs- und Decodierungsvorgänge verwendet. Alle zuvor registrierten Anbieter werden ignoriert.