为什么在进行本地化时我们需要SharedResources类

时间:2019-07-08 05:12:24

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

我是asp.net核心本地化的新手,正在尝试使用资源文件。这样做有多种方法,因此我从IStringLocalizer和IHtmlLocalizer开始。

我们可以在将Localizer注入视图时指定类型,并且大多数教程建议使用根名称空间创建一个空的 SharedResource 类文件。

我试图找到其背后的原因,但没有找到,有人可以帮我解决空 SharedResource 类的原因吗?

@inject IHtmlLocalizer<SharedResources> Localizer


namespace Root.Namespace
{
    public class SharedResources
    {

    }
}

1 个答案:

答案 0 :(得分:0)

空的SharedResource类用于像这样在Visual Studio中对资源文件进行分组

enter image description here

enter image description here

还需要IStringLocalizeFactory

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
            .AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) =>
                {
                    var assemblyName = new AssemblyName(typeof(SharedResource).GetTypeInfo().Assembly.FullName);
                    return factory.Create("SharedResource", assemblyName.Name);
                };
            });

您可以阅读我的博客和源代码here,以更好地了解它