Encoding.RegisterProvider(EncodingProvider) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Registra um provedor de codificação.
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)
Parâmetros
- provider
- EncodingProvider
Uma subclasse que EncodingProvider fornece acesso a codificações de caracteres adicionais.
- Atributos
Exceções
provider é null.
Comentários
O RegisterProvider método permite que você registre uma classe derivada EncodingProvider da qual disponibiliza codificações de caracteres em uma plataforma que, de outra forma, não dá suporte a elas. Depois que o provedor de codificação é registrado, as codificações que ele dá suporte podem ser recuperadas chamando qualquer Encoding.GetEncoding sobrecarga. Se houver vários provedores de codificação, o Encoding.GetEncoding método tentará recuperar uma codificação especificada de cada provedor começando com o registrado mais recentemente.
Registrar um provedor de codificação usando o RegisterProvider método também afeta o comportamento de GetEncoding(Int32) quando passado um argumento de 0. Isso é particularmente importante no .NET Core e versões posteriores em que o comportamento padrão para GetEncoding(Int32) com codepage 0 é retornar UTF-8:
Se o provedor registrado for CodePagesEncodingProvider:
- Em Windows, GetEncoding(Int32) com
codepage0 retorna a codificação que corresponde à página de código ativo do sistema (igual ao comportamento do .NET Framework). - Em plataformas non-Windows, ele ainda retorna UTF-8.
- Em Windows, GetEncoding(Int32) com
Se um provedor de codificação personalizado estiver registrado: o provedor poderá escolher qual codificação retornar quando GetEncoding(Int32) for passado um argumento de
0. O provedor também pode optar por não lidar com esse caso retornandonullde seu EncodingProvider.GetEncoding método, nesse caso, o comportamento padrão UTF-8 é usado.
Se vários provedores forem registrados, GetEncoding(Int32) tente recuperar a codificação do provedor registrado mais recentemente primeiro.
A partir do .NET Framework 4.6, o .NET Framework inclui um provedor de codificação, CodePagesEncodingProvider, que disponibiliza as codificações presentes no .NET Framework completo, mas não estão disponíveis no Plataforma Universal do Windows. Por padrão, o Plataforma Universal do Windows dá suporte apenas às codificações Unicode, ASCII e à página de código 28591.
Se o mesmo provedor de codificação for usado em várias chamadas para o RegisterProvider método, somente a primeira chamada de método registrará o provedor. As chamadas subsequentes são ignoradas.
Se o RegisterProvider método for chamado para registrar vários provedores que lidam com a mesma codificação, o último provedor registrado será usado para todas as operações de codificação e decodificação. Todos os provedores registrados anteriormente são ignorados.