为了更好地维护 ASP.NET Core 的公共 API 图面,已删除一些 "pubternal" 本地化 API。
"pubternal" API 具有public访问修饰符,并在一个表示内部意图的命名空间中定义。
有关讨论,请参阅 dotnet/aspnetcore#22291。
已引入的版本
5.0 预览版 6
旧行为
以下 API 为 public:
Microsoft.Extensions.Localization.Internal.AssemblyWrapperMicrosoft.Extensions.Localization.Internal.IResourceStringProvider-
Microsoft.Extensions.Localization.ResourceManagerStringLocalizer构造函数重载,接受以下参数类型之一:AssemblyWrapperIResourceStringProvider
新行为
以下列表概述了这些更改:
-
Microsoft.Extensions.Localization.Internal.AssemblyWrapper成为Microsoft.Extensions.Localization.AssemblyWrapper,现在是internal。 -
Microsoft.Extensions.Localization.Internal.IResourceStringProvider成为Microsoft.Extensions.Localization.Internal.IResourceStringProvider,现在是internal。 -
Microsoft.Extensions.Localization.ResourceManagerStringLocalizer构造函数重载,接受以下参数类型之一,现在是internal:AssemblyWrapperIResourceStringProvider
更改原因
aspnet/Announcements#377 中有更多全面的解释,从 "pubternal" API 面中删除了 public 类型。 这些更改可使更多类适应该设计决策。 有关课程旨在作为团队内部测试的扩展点。
建议的措施
尽管不太可能,但某些应用可能会有意或意外地依赖于类型 "pubternal" 。 请参阅新行为部分,确定如何从类型中进行迁移。
如果您发现某个方案在此更改之前是公共 API 允许的,现在却不再允许,请在 dotnet/aspnetcore 上提交问题。
受影响的 API
Microsoft.Extensions.Localization.Internal.AssemblyWrapperMicrosoft.Extensions.Localization.Internal.IResourceStringProvider- ResourceManagerStringLocalizer.ResourceManagerStringLocalizer