文件名中没有文化的 ASP.NET Core 资源文件,为什么不呢?

问题描述

引用自 ASP.NET Microsoft Docs

如果你在 Visual Studio 中创建了一个没有文化的资源文件 文件名(例如,Welcome.resx),Visual Studio 将创建一个 C# 类,每个字符串都有一个属性那通常不是你的 想要使用 ASP.NET Core。您通常没有认的 .resx 资源文件一个没有文化名称的 .resx 文件)。我们建议你 使用区域性名称创建 .resx 文件(例如 欢迎.fr.resx)。当您使用区域性名称创建 .resx 文件时, Visual Studio 不会生成文件

IMO 文档没有清楚地解释为什么具有属性名称的 C# 类不是您想要的 ASP.NET Core。在静态类中使用属​​性似乎比在任何地方都注入 IStringLocalizer 更方便。谁能详细说一下??

解决方法

在我看来,asp.net core 是基于依赖注入的应用程序,通常,对于所有类,我们都会使用依赖注入。这将使我们的应用程序在类及其依赖项之间实现控制反转 (IoC)。通常,我们不会在asp.net core 的静态类中使用属​​性。

详情,你可以参考这个article

这就是为什么文档建议您在应用程序中使用 e Welcome.fr.resx 而不是 Welcome.resx 的原因。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...