【问题标题】:Custom DataAnnotations Localization - Create Singleton Object only自定义 DataAnnotations 本地化 - 仅创建单例对象
【发布时间】:2019-08-06 12:47:22
【问题描述】:

我以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 本地化是单例对象?

【问题讨论】:

    标签: asp.net-core .net-core localization asp.net-core-mvc


    【解决方案1】:

    我也遇到了同样的问题,请问有解决办法吗?

    我相信你说得对

    DataAnnotation 本地化是单例对象

    因为即使在我的情况下,如果工厂在特定文化中创建本地化程序,相同的本地化程序将用于将来的访问,即使您更改了文化或工厂创建了新的本地化程序(我猜这也可能导致内存泄漏)

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多