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

本文关键字:资源 源文件 隐藏 运行时 选择 代码 | 更新日期: 2023-09-27 18:21:26

假设我有两个资源文件;一个被称为CCD_ 1,另一个被称作CCD_。我看过一些在线教程,这些教程展示了如何根据用户在浏览器中的设置自动选择资源文件。

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

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;
    }
}

我该如何写这些声明?

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

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

您只需要重命名文件以分别匹配预期的模式Home.en.resxHome.fr.resx

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

之后,如果你也遵循@devio的上述解决方案,资源文件将被自动选择。

如果您想访问这两种资源,可以使用ResourceManager类

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