Share via


Localização: APIs "Pubternal" removidas

Para manter melhor a superfície de API pública do ASP.NET Core, algumas APIs de localização "pubternal" foram removidas. Uma API "pubternal" possui um modificador de acesso public e é definida em um namespace que implica uma intenção interna.

Para ver a discussão, confira dotnet/aspnetcore#22291.

Versão introduzida

5.0 Versão Prévia 6

Comportamento antigo

As seguintes APIs eram public:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Sobrecargas do construtor Microsoft.Extensions.Localization.ResourceManagerStringLocalizer que aceitam um dos seguintes tipos de parâmetro:
    • AssemblyWrapper
    • IResourceStringProvider

Novo comportamento

A lista a seguir descreve as alterações:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper tornou-se Microsoft.Extensions.Localization.AssemblyWrapper e agora é internal.
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider tornou-se Microsoft.Extensions.Localization.Internal.IResourceStringProvider e agora é internal.
  • Sobrecargas do construtor Microsoft.Extensions.Localization.ResourceManagerStringLocalizer que aceitam um dos seguintes tipos de parâmetro agora são internal:
    • AssemblyWrapper
    • IResourceStringProvider

Motivo da alteração

Explicados mais detalhadamente em aspnet/Announcements#377, os tipos "pubternal"foram removidos da superfície da API public. Essas alterações adaptam mais classes a essa decisão de design. As classes em questão foram concebidas como pontos de extensão para os testes internos da equipe.

Embora improvável, alguns aplicativos poderão depender intencionalmente ou acidentalmente dos tipos "pubternal". Consulte as seções Novo comportamento para determinar como migrar dos tipos.

Se você identificou um cenário em que a API pública permitia antes dessa alteração, mas agora não permite, registre um problema em dotnet/aspnetcore.

APIs afetadas