转换.resx类以获取ResourceSet

时间:2009-11-03 03:48:28

标签: c# asp.net resources casting

我正在尝试使用从.resx文件中提取的数据填充下拉列表。我希望能够传递.resx文件的名称并以某种方式投射它,而不是使用5个不同的函数,以便我可以使用GetReourceSet检索它。

以下是我目前正在做的事情:

protected void populateCountryPickList(DropDownList whatDropDownList)
{
    ResourceSet rs = Resources.CountryPickList.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, true, true);
    whatDropDownList.DataSource = rs;
    whatDropDownList.DataTextField = "Value";
    whatDropDownList.DataValueField = "Key";
    whatDropDownList.DataBind();
}

在上面的示例中,我有一个名为CountryPickList.resx的.resx文件,因此只需使用.resx名称来使用GetResourceSet检索ResourceSet ...

我希望能够做到的是弄清楚如何使用.resx的名称将字符串传递给我的函数并获得相同的结果。

任何建议都将不胜感激!

欢呼声,

rise4peace

1 个答案:

答案 0 :(得分:2)

ResourceManagerconstructor,其中包含resources文件的名称。

因此,您可以编写以下代码:

ResourceSet rs = new ResourceManager(whatDropDownList.Name, GetType().Assembly)
                     .GetResourceSet(CultureInfo.CurrentCulture, true, true);

编辑:在ASP.Net中,它并不完全相同。您可以查看其中一个资源文件的生成源代码(.designer.cs),并查看静态ResourceManager属性的实现。

看起来像这样:

ResourceManager temp = new ResourceManager("Resources.Resource1", Assembly.Load("App_GlobalResources"));