在运行时选择代码中的资源文件

时间:2014-09-09 17:45:48

标签: c# asp.net resource-files

假设我有2个资源文件;一个叫HomeEN.resx,另一个叫HomeFR.resx。我已经查看了在线教程,这些教程显示了如何根据用户在浏览器中的设置自动完成资源文件的选择。

我想在运行时选择资源文件,如下所示:

protected void Page_Load(object sender, EventArgs e)
{      
    switch (TheLanguage) {

       case 1:
            // select the English file HomeEN.resx;
            break;

       case 2:
            // select the French file HomeFR.resx;
            break;
    }
}

我如何撰写这些陈述?

感谢。

3 个答案:

答案 0 :(得分:3)

通过设置Page的CultureUICulture属性,可以自动读取正确的资源文件。请参阅MSDN samples

您只需要将文件重命名为分别符合预期模式Home.en.resxHome.fr.resx

答案 1 :(得分:1)

protected void Page_Load(object sender, EventArgs e)
{      
System.Threading.Thread.CurrentThread.CurrentCulture = someCulture;
    System.Threading.Thread.CurrentThread.CurrentUICulture = someCulture;
}

之后,如果你也按照上面的@ devio解决方案,将自动选择资源文件。

答案 2 :(得分:1)

如果要访问这两种资源,可以使用ResourceManager class

 ResourceManager rm = new ResourceManager("Strings", typeof(Example).Assembly);
string strDE = rm.GetString("TheNameOfTheResource",  new CultureInfo("de"));
string strES = rm.GetString("TheNameOfTheResource",  new CultureInfo("es"));