通过枚举值从资源获取文件

时间:2010-11-14 21:04:50

标签: c# resources

嗯...我有枚举值(例如'VALUE') 以及一些带有txt文件的资源。 我使用以下代码获取此文件('MyResource_test.txt'):

FileStream fs = new FileStream("c:\\test.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(gui.Resources.MyResource.MyResource_test);

现在我需要通过我的枚举值

从资源获取文件
sw.WriteLine(gui.Resources.MyResource.VALUE);

怎么做?反思或其他什么? 感谢

2 个答案:

答案 0 :(得分:1)

使用ResourceManager:

sw.WriteLine(gui.Resources.MyResource.ResourceManager.GetString(YourEnumType.VALUE.ToString()));

答案 1 :(得分:0)

创建一个将枚举映射到资源的字典:

var map = new Dictionary<YourEnumType, object>();

map[YourEnumType.VALUE] = gui.Resources.MyResource.MyResource_test;

然后,当您需要编写它时,请使用地图:

sw.WriteLine(map[YourEnumType.VALUE]);

如果这是标准的.NET资源(.resx文件),还有另一种选择。通过生成的代码访问这些资源,该代码通过字符串访问资源。如果您将枚举值的名称设置为等于资源项的代码,则可以像下面这样访问它们:

var item = YourEnumType.VALUE;

Resource1.ResourceManager.GetString(item.ToString());