Получение файла из ресурсов по значению enum - PullRequest
1 голос
/ 15 ноября 2010

Хммм ... У меня есть enum-значение (например, '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 ]

1 голос
/ 15 ноября 2010

Использование ResourceManager:

sw.WriteLine(gui.Resources.MyResource.ResourceManager.GetString(YourEnumType.VALUE.ToString()));
0 голосов
/ 15 ноября 2010

Создайте словарь, который сопоставляет перечисления с ресурсами:

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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...