我是asp.net核心本地化的新手,正在尝试使用资源文件。这样做有多种方法,因此我从IStringLocalizer和IHtmlLocalizer开始。
我们可以在将Localizer注入视图时指定类型,并且大多数教程建议创建带有根名称空间的Empty SharedResource类文件。
我试图找到其背后的原因,但没有找到,有人可以帮我了解一下为什么有空的SharedResource类的原因吗?
@inject IHtmlLocalizer<SharedResources> Localizer
namespace Root.Namespace
{
public class SharedResources
{
}
}
最佳答案
空的SharedResource类用于像这样在Visual Studio中对资源文件进行分组
也需要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以更好地理解它