本地化:ResourceManagerWithCultureStringLocalizer 类和 WithCulture 接口成员已删除

Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizerMicrosoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture 方法已在 .NET 5 中删除。

有关上下文,请参阅 aspnet/Announcements#346dotnet/aspnetcore#3324。 有关此更改的讨论,请参阅 dotnet/aspnetcore#7756

已引入的版本

5.0

旧行为

ResourceManagerWithCultureStringLocalizerResourceManagerStringLocalizer.WithCulture 方法 在 .NET Core 3.0 及更高版本中已过时

新行为

ResourceManagerWithCultureStringLocalizerResourceManagerStringLocalizer.WithCulture 方法已在 .NET 5 中删除。 有关所做更改的清单,请参阅 dotnet/extensions#2562 上的 pull 请求。

更改原因

ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法常常让本地化用户感到困惑。 创建自定义 IStringLocalizer 实现时,混淆尤其高。 这个类和方法给使用者的印象是 IStringLocalizer 实例应“按语言、按资源”。 实际上,实例应该仅“按资源”。 在运行时,该 CultureInfo.CurrentUICulture 属性确定要使用的语言。

停止使用 ResourceManagerWithCultureStringLocalizer 类和 ResourceManagerStringLocalizer.WithCulture 方法。

受影响的 API

  • Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer
  • Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture