为什么调用ResourceManager类比直接按名称加载资源更好?

时间:2013-01-24 13:51:37

标签: c# resourcemanager

我正在研究一个大项目的本地化,我这样做是通过手动创建一个大型资源文件,并在代码中按名称调用每个字符串。我没有调用ResourceManager并使用GetString(用于对话框等),而只是用Resources.ClassName_MethodName_StringName替换每个字符串。

我有一种感觉我应该使用ResourceManager,但我想了解为什么在我更改所有代码以使用它之前它会更好。

2 个答案:

答案 0 :(得分:9)

嗯,没有理由直接使用ResourceManager(会有一些例外情况),因为如果你使用resx-Files生成的代码,那么它的全部内容如下:

public static string MyResourceName {
    get {
        return ResourceManager.GetString("MyResourceName", resourceCulture);
    }
}

这很棒,因为您可以免费获得资源名称的编译时验证!

答案 1 :(得分:0)

http://www.c-sharpcorner.com/uploadfile/prvn_131971/chapter-i-resources-and-localization/

  

在内部,生成的类使用的实例   ResourceManager类,在System.Resources中定义   命名空间。这个类的实例可以通过   生成类的ResourceManager属性。 内部,财产   访问嵌入资源本身的程序是正确的   围绕其中一个GetXxx方法(即GetString)的调用的包装器   或者这个ResourceManager实例的GetStream。例如,   可通过生成的属性过程访问的资源   Resources.MyResourceStrings。

因此,直接按名称调用资源,无论如何都要使用YourResources.ResourceManager.GetString()方法。