Encoding.RegisterProvider(EncodingProvider) Método

Definição

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 codepage 0 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.
  • 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 retornando null de 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.

Aplica-se a

Confira também