Я создал пользовательский поставщик локализации на основе JSON для IStringLocalizer и Factory, взяв пример Askmethat-Aspnet-JsonLocalizer,
Я также добился локализации аннотаций данных. и локализовали сообщения проверки.
Теперь, в настоящее время требуется, чтобы я мог обновить языковые файлы на основе Json без перезапуска приложения, что также осуществляется путем внедрения IStringLocalizer в качестве временной службы.
Но я заметил, что после загрузки LocalizedStrings для DataAnnotation он не обновляется всякий раз, когда я обновляю Json. Он не отражает сообщение проверки DataAnnotation, но это так, если я использую IStringLocalizer.
Возможно ли, что DataAnnotation StringLocalizer является синглтоном?
Я использовал приведенный ниже код для достижения DataAnnotationLocalization при запуске
services.AddMvcCore()
.AddDataAnnotations()
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
factory.Create(string.Empty, string.Empty);
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Здесь фабричная реализация вводится как служба Transient.
Есть ли что-то, что я пропустил, или это похоже на то, что локализация DataAnnotation является объектом Singleton?





У меня точно такая же проблема, вы нашли решение для этого?
я считаю, что вы правы, как уже упоминалось
DataAnnotation Localization is Singleton Object
потому что даже в моем случае, если фабрика создаст локализатор в определенной культуре, тот же локализатор будет использоваться для доступа в будущем, даже если вы изменили культуру или фабрика создаст новый локализатор (также это может привести к утечке памяти, я думаю)