本地化:已删除“Pubternal”API

为了更好地维护 ASP.NET Core 的公共 API 图面,已删除一些 "pubternal" 本地化 API。 "pubternal" API 具有public访问修饰符,并在一个表示内部意图的命名空间中定义。

有关讨论,请参阅 dotnet/aspnetcore#22291

已引入的版本

5.0 预览版 6

旧行为

以下 API 为 public

  • Microsoft.Extensions.Localization.Internal.AssemblyWrapper
  • Microsoft.Extensions.Localization.Internal.IResourceStringProvider
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer 构造函数重载,接受以下参数类型之一:
    • AssemblyWrapper
    • IResourceStringProvider

新行为

以下列表概述了这些更改:

  • 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
    • AssemblyWrapper
    • IResourceStringProvider

更改原因

aspnet/Announcements#377 中有更多全面的解释,从 "pubternal" API 面中删除了 public 类型。 这些更改可使更多类适应该设计决策。 有关课程旨在作为团队内部测试的扩展点。

尽管不太可能,但某些应用可能会有意或意外地依赖于类型 "pubternal" 。 请参阅新行为部分,确定如何从类型中进行迁移。

如果您发现某个方案在此更改之前是公共 API 允许的,现在却不再允许,请在 dotnet/aspnetcore 上提交问题。

受影响的 API