Lokalizacja: usunięte interfejsy API "Pubternal"

Aby lepiej zachować publiczną powierzchnię interfejsu API ASP.NET Core, niektóre "pubternal" interfejsy API lokalizacji zostały usunięte. Interfejs "pubternal" API ma public modyfikator dostępu i jest zdefiniowany w przestrzeni nazw, która oznacza intencję wewnętrzną.

Aby zapoznać się z dyskusją, zobacz dotnet/aspnetcore#22291.

Wprowadzona wersja

5.0 (wersja zapoznawcza 6)

Stare zachowanie

Następujące interfejsy API to public:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer przeciążenia konstruktora akceptujące jeden z następujących typów parametrów:
    • AssemblyWrapper
    • IResourceStringProvider

Nowe zachowanie

Poniższa lista zawiera opis zmian:

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper stał się Microsoft.Extensions.Localization.AssemblyWrapper i jest teraz internal.
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider stał się Microsoft.Extensions.Localization.Internal.IResourceStringProvider i jest teraz internal.
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer przeciążenia konstruktora akceptujące jeden z następujących typów parametrów to teraz internal:
    • AssemblyWrapper
    • IResourceStringProvider

Przyczyna wprowadzenia zmiany

Dokładniej wyjaśniono w temacie aspnet/Announcements#377, "pubternal" typy zostały usunięte z powierzchni interfejsu public API. Te zmiany dostosowują więcej klas do tej decyzji projektowej. Omawiane klasy były przeznaczone jako punkty rozszerzenia dla wewnętrznego testowania zespołu.

Chociaż jest mało prawdopodobne, niektóre aplikacje mogą celowo lub przypadkowo zależeć od "pubternal" typów. Zobacz sekcje Nowe zachowanie, aby określić sposób migracji z dala od typów.

Jeśli zidentyfikowano scenariusz dozwolony przez publiczny interfejs API przed tą zmianą, ale nie teraz, zgłoś problem pod adresem dotnet/aspnetcore.

Dotyczy interfejsów API