我正在研究一个大项目的本地化,我这样做是通过手动创建一个大型资源文件,并在代码中按名称调用每个字符串。我没有调用ResourceManager
并使用GetString
(用于对话框等),而只是用Resources.ClassName_MethodName_StringName
替换每个字符串。
我有一种感觉我应该使用ResourceManager
,但我想了解为什么在我更改所有代码以使用它之前它会更好。
答案 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()方法。