一种使用反射访问所有资源值的方法

时间:2013-11-20 10:14:11

标签: c# reflection

我有一个包含例如。

的资源文件(MyResources.resx)
       Name   |   Value   |
    ----------|-----------|
      PageA   |   aaaaa   |
      PageB   |   bbbbb   |
      PageC   |   ccccc   |


  etc..etc...

(网站中每页的其中一个。大约100页)

在我的班级档案中,我有以下内容:

public String GetDetails(String pageName)
{
    string detail = "";

    if (pageName == "PageA")
    {
        detail= MyResources.PageA;
    }
    if (pageName == "PageB")
    {
        detail= MyResources.PageB;
    }
    if (pageName == "PageC")
    {
         detail= MyResources.PageC;
    }
    etc...etc..(roughly 100 if statements)

    return detail;
}

有人可以建议一个更好的方法来解释我将如何实现它吗? 反思是个好主意吗?如果是这样,我怎样才能将这个巨大的方法变成下面的东西呢?

public String GetDetails(String pageName)
{
    return MyResources.pageName;

}

1 个答案:

答案 0 :(得分:5)

您可以使用在命名空间ResourceManager中自动生成的类Resources的静态属性Properties

public String GetDetails(String pageName) {
  return Properties.Resources.ResourceManager.GetString(pageName);
}