为了更好地维护 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
Microsoft.Extensions.Localization.Internal.AssemblyWrapper
Microsoft.Extensions.Localization.Internal.IResourceStringProvider
- ResourceManagerStringLocalizer.ResourceManagerStringLocalizer