Dela via


Lokalisering: "Pubternal"-API:er har tagits bort

För att bättre underhålla den offentliga API-ytan för ASP.NET Core har vissa "pubternal" lokaliserings-API:er tagits bort. Ett "pubternal" API har en public åtkomstmodifierare och definieras i ett namnområde som innebär en intern avsikt.

Diskussion finns i dotnet/aspnetcore#22291.

Version introducerad

5.0 Förhandsversion 6

Gammalt beteende

Följande API:er var public:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer konstruktorn överbelastar endera av följande parametertyper:
    • AssemblyWrapper
    • IResourceStringProvider

Nytt beteende

I följande lista beskrivs ändringarna:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper blev Microsoft.Extensions.Localization.AssemblyWrapper och är nu internal.
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider blev Microsoft.Extensions.Localization.Internal.IResourceStringProvider och är nu internal.
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer konstruktoröverlagringar som accepterar någon av följande parametertyper är nu internal:
    • AssemblyWrapper
    • IResourceStringProvider

Orsak till ändringen

Mer ingående förklaras på aspnet/Announcements#377, "pubternal" typer har tagits bort från API-ytan public . Dessa ändringar anpassar fler klasser till det designbeslutet. Klasserna i fråga var avsedda som tilläggspunkter för teamets interna testning.

Även om det är osannolikt kan vissa appar avsiktligt eller av misstag vara beroende av typerna "pubternal" . Se avsnitten Nytt beteende för att avgöra hur du migrerar bort från typerna.

Om du har identifierat ett scenario som det offentliga API:et tillät före den här ändringen men inte gör det nu kan du skapa ett problem på dotnet/aspnetcore.

Berörda API:er