c# - 直接访问resource.resx而不是ResourceManager更好吗?

标签 c# localization

我知道两种从资源文件中获取字符串的方法。

方法一:直接访问。

string str = _NAMESPACE.Properties.Resources.HelloWorld;

方法2:通过ResourceManager。

ResourceManager rm = new ResourceManager("_NAMESPACE.Properties.Resources", Assembly.GetExecutingAssembly());
string str = rm.GetString("HelloWorld");

如果有多个本地化资源文件,这两种方法都会得到正确的本地化字符串。

如果我在字符串键中输入错误,method1 在构建时将会失败。 方法 2 将在运行时失败。因此,我认为方法1比方法2更好。

我在这个论坛中发现了一些类似的问题。但是,我的问题仍然无法得到很好的答案。

  1. Why is it better to call the ResourceManager class as opposed to loading resources directly by name?

  2. Need to use ResourceManager + GetString to support cultures OR I can just point directly at the resource file?

方法1真的更好吗?

最佳答案

我相信第一种方法更好,因为当您使用第二种方法时,您正在创建资源管理器的新实例,我认为这是不必要的内存使用。

编辑*

读完这篇文章后: https://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.90).aspx

看起来它们基本上是相同的,当直接使用资源类访问资源时,内部使用资源管理器类来创建对象的实例。

关于c# - 直接访问resource.resx而不是ResourceManager更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39652500/

相关文章:

c# - 如何使用 LINQ 查询复杂的 XML 文档?

c# - 有没有类似OnOrientationChanged的方法?

c# - 绑定(bind)源不适用于 DataGridView C# 中包含两个或多个单词的列名称

具有动态名称问题的 c# 动态 json 对象

localization - NSIS 安装程序俄语

c# - 在 C# 中为 Win Form 创建向导

javascript - 如何使用 Angular JS 在 Highcharts 中设置 'lang' 属性?

localization - 本地化 Flash 消息?

python - 系统日期格式不使用 django 语言环境

php - 区域化内容显示给具有配置文件中匹配区域的用户