通过枚举值从资源获取文件
嗯...我有枚举值(例如,'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);
摆脱资源文件怎么办呢?反射或其他什么? 感谢
创建的枚举映射到资源的字典:
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());
这很好....但是......可能还有其他方法吗?因为这样我首先需要填写我的字典。这是similliar使用开关(枚举)来获取资源。我可以在不创建任何其他对象或使用子句的情况下获得它吗? – nemocean 2010-11-14 21:34:15
用替代方法更新了答案。 – 2010-11-15 06:12:56
使用ResourceManager:
sw.WriteLine(gui.Resources.MyResource.ResourceManager.GetString(YourEnumType.VALUE.ToString()));
BTW,您可以创建'StreamWriter'直接从文件名:'新的StreamWriter(@“C:\ test.txt”)'。 – svick 2010-11-14 21:39:44