aspnetcore/breaking-changes/5/localization-pubternal-apis-removed.md
To better maintain the public API surface of ASP.NET Core, some :::no-loc text=""pubternal""::: localization APIs were removed. A :::no-loc text=""pubternal""::: API has a public access modifier and is defined in a namespace that implies an internal intent.
For discussion, see dotnet/aspnetcore#22291.
5.0 Preview 6
The following APIs were public:
Microsoft.Extensions.Localization.Internal.AssemblyWrapperMicrosoft.Extensions.Localization.Internal.IResourceStringProviderMicrosoft.Extensions.Localization.ResourceManagerStringLocalizer constructor overloads accepting either of the following parameter types:
AssemblyWrapperIResourceStringProviderThe following list outlines the changes:
Microsoft.Extensions.Localization.Internal.AssemblyWrapper became Microsoft.Extensions.Localization.AssemblyWrapper and is now internal.Microsoft.Extensions.Localization.Internal.IResourceStringProvider became Microsoft.Extensions.Localization.Internal.IResourceStringProvider and is now internal.Microsoft.Extensions.Localization.ResourceManagerStringLocalizer constructor overloads accepting either of the following parameter types are now internal:
AssemblyWrapperIResourceStringProviderExplained more thoroughly at aspnet/Announcements#377, :::no-loc text=""pubternal""::: types were removed from the public API surface. These changes adapt more classes to that design decision. The classes in question were intended as extension points for the team's internal testing.
Although it's unlikely, some apps may intentionally or accidentally depend upon the :::no-loc text=""pubternal""::: types. See the New behavior sections to determine how to migrate away from the types.
If you've identified a scenario which the public API allowed before this change but doesn't now, file an issue at dotnet/aspnetcore.
Microsoft.Extensions.Localization.Internal.AssemblyWrapperMicrosoft.Extensions.Localization.Internal.IResourceStringProvider