问题描述
如果你在 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 的原因。