Lokalisierung: „Pubternal“-APIs entfernt

Einige "pubternal"-Lokalisierungs-APIs wurden entfernt, um die öffentliche API-Oberfläche von ASP.NET Core besser verwalten zu können. Eine "pubternal"-API verfügt über einen public-Zugriffsmodifizierer und wird in einem Namespace definiert, der eine internal-Absicht impliziert.

Weitere Informationen finden Sie unter dotnet/aspnetcore#22291.

Eingeführt in Version

Version 5.0 Vorschau 6

Altes Verhalten

Die folgenden APIs waren public:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer-Konstruktorüberladungen, die einen der folgenden Parametertypen akzeptieren:
    • AssemblyWrapper
    • IResourceStringProvider

Neues Verhalten

In der folgenden Liste werden die Änderungen erläutert:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper wurde Microsoft.Extensions.Localization.AssemblyWrapper und ist jetzt internal.
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider wurde Microsoft.Extensions.Localization.Internal.IResourceStringProvider und ist jetzt internal.
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer-Konstruktorüberladungen, die einen der folgenden Parametertypen akzeptieren, sind jetzt internal:
    • AssemblyWrapper
    • IResourceStringProvider

Grund für die Änderung

Die "pubternal"-Typen wurden aus der public-API-Oberfläche entfernt. Ausführlichere Informationen finden Sie unter aspnet/Announcements#377. Mit diesen Änderungen werden mehr Klassen an diese Entwurfsentscheidung angepasst. Die betroffenen Klassen waren als Erweiterungspunkte für die internen Tests des Teams vorgesehen.

Obwohl es unwahrscheinlich ist, können einige Apps absichtlich oder unabsichtlich von den "pubternal"-Typen abhängen. Lesen Sie den Abschnitt Neues Verhalten durch, um sich über die Migration weg von diesen Typen zu informieren.

In einem Szenario, in dem die öffentliche API vor dieser Änderung zulässig war, nun aber nicht mehr ist, melden Sie ein Issue auf dotnet/aspnetcore.

Betroffene APIs