我正在尝试使用从.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
答案 0 :(得分:2)
ResourceManager
有constructor,其中包含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"));