Tôi đã nâng cấp một dự án từ .Net Core 2.2 lên .Net Core 3.0.
Sau khi cố gắng sửa tất cả các cảnh báo và lỗi, giờ tôi đang cố gắng tài trợ cho một giải pháp cho cảnh báo này:
'IStringLocalizer.WithCulture(CultureInfo)' is obsolete: 'This method is obsolete.
Use `CurrentCulture` and `CurrentUICulture` instead.'
Tôi đang sử dụng điều này để thay đổi ngôn ngữ trang web cho mỗi người dùng đã đăng nhập. Tôi có triển khai này để thay đổi văn hóa trang web trên mỗi người dùng:
public class CultureLocalizer : ICultureLocalizer
{
private readonly IStringLocalizer localizer;
public CultureLocalizer(IStringLocalizerFactory factory)
{
var type = typeof(Resources.PageResources);
var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName);
localizer = factory.Create("PageResources", assemblyName.Name);
}
// if we have formatted string we can provide arguments
// e.g.: @Localizer.Text("Hello {0}", User.Name)
public LocalizedString Get(string key, params string[] arguments)
{
return arguments == null ? localizer[key] : localizer[key, arguments];
}
public LocalizedString Get(Enum key, params string[] arguments)
{
return arguments == null ? localizer[key.ToString()] : localizer[key.ToString(), arguments];
}
public LocalizedString Get(CultureInfo culture, string key, params string[] arguments)
{
// This is obsolete
return arguments == null ? localizer.WithCulture(culture)[key] : localizer.WithCulture(culture)[key, arguments];
}
public LocalizedString Get(CultureInfo culture, Enum key, params string[] arguments)
{
// This is obsolete
return arguments == null ? localizer.WithCulture(culture)[key.ToString()] : localizer.WithCulture(culture)[key.ToString(), arguments];
}
}
Và đây là lớp giả chỉ giữ .resx
tệp cho các bản dịch:
// dummy class for grouping localization resources
public class PageResources
{
}
Tôi không thể tìm thấy bất cứ điều gì trên web đề cập đến cách giải quyết cảnh báo này ngoại trừ cuộc thảo luận này trên github dường như chưa có giải pháp nào.
Có ai khác vấp phải cảnh báo này và tìm ra giải pháp cho nó?