类 Microsoft.Extensions.Localization.ResourceManagerWithCultureStringLocalizer
和 Microsoft.Extensions.Localization.ResourceManagerStringLocalizer.WithCulture
方法已在 .NET 5 中删除。
有关上下文,请参阅 aspnet/Announcements#346 和 dotnet/aspnetcore#3324。 有关此更改的讨论,请参阅 dotnet/aspnetcore#7756。
已引入的版本
5.0
旧行为
类 ResourceManagerWithCultureStringLocalizer
和 ResourceManagerStringLocalizer.WithCulture
方法 在 .NET Core 3.0 及更高版本中已过时。
新行为
类 ResourceManagerWithCultureStringLocalizer
和 ResourceManagerStringLocalizer.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