为什么在c#中使用ResourceManager从资源文件中检索字符串?

时间:2018-04-21 16:55:08

标签: c# .net localization

是否有必要使用以下方法从c#中的资源文件中获取字符串值?

ResourceManager rm = new ResourceManager("Using RESX.Resource1", Assembly.GetExecutingAssembly());             
String strWebsite = rm.GetString("Website",CultureInfo.CurrentCulture);

在哪里我们有一个简单的方法可以直接使用资源文件对象(例如:RESX.Resource1.Website)从resx中获取值?

请解释每种方法的优缺点。

1 个答案:

答案 0 :(得分:-1)

第一种方法主要用于无限枚举或数据blob。例如,当您根本不关心名称和/或始终知道所有资源的类型时:

for(int i = 0; i < 42; i++)
{
    var word = rm.GetString("word_" + i,CultureInfo.CurrentCulture);
}

当您的应用程序和资源在不同的团队中单独开发时,通常使用。例如,开发人员创建的游戏引擎和游戏设计者为任务和对话框创建一些脚本/资源,并将其放入特定合同的资源文件中。

当您确定资源的结构并且可以具有强类型/易访问字段时,将使用第二种方法。即一些密码,配置,异常消息等。