本地化:已删除“Pubternal”API

为更好地维护 ASP.NET Core 的 public API 面,已删除部分 "pubternal" 本地化 API。 "pubternal" API 具有 public 访问修饰符,在指示 internal 意向的命名空间中定义。

有关讨论,请参阅 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 中有更多全面的解释,从 public API 面中删除了 "pubternal" 类型。 这些更改可使更多类适应该设计决策。 上述类用作了团队内部测试的扩展点。

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

如果你已确定方案,且该方案在此更改之前允许公共 API 但现在不允许,则请在 dotnet/aspnetcore 上提交问题。

受影响的 API