我以Askmethat-Aspnet-JsonLocalizer为例,为IStringLocalizer和Factory创建了基于自定义JSON的本地化提供程序,
我还实现了数据注释本地化。并本地化验证消息。
现在,当前的要求是我可以在不重新启动应用程序的情况下更新基于Json的语言文件,也可以通过将IStringLocalizer作为临时服务注入。
但是我观察到的是,一旦为DataAnnotation加载了LocalizedStrings,当我更新Json时,它就不会更新,这并不能反映出DataAnnotation验证消息,但这是我是否使用IStringLocalizer。
DataAnnotation StringLocalizer是否有可能是Singleton?
我已经使用下面的代码实现了DataAnnotationLocalization到启动
services.AddMvcCore()
.AddDataAnnotations()
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
factory.Create(string.Empty, string.Empty);
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
在这里,工厂实施作为临时服务被注入。
有什么我错过的东西吗?还是DataAnnotation本地化是Singleton Object?
答案 0 :(得分:0)
我有完全相同的问题,您为此找到解决方案吗?
我相信您是正确的
DataAnnotation本地化是单例对象
因为就我而言,即使工厂更改了特定文化的本地化程序,即使您更改了文化或工厂创建了新的本地化程序,相同的本地化程序也将用于将来的访问(这也可能导致内存泄漏)