Как найти имя файла ресурсов по умолчанию в C # и VB.Net? - PullRequest
1 голос
/ 02 февраля 2011

Я создал атрибут, похожий на ToolboxBitmapAttribute, который позволяет ассоциировать значок или изображение с классом.

Чтобы связать изображение, базовое имя файла ресурса, тип (для поискасборка) и имя ресурса передаются в конструктор атрибута.Затем я использую ResourceManager для получения доступа к ресурсу:

Dim rm = New ResourceManager(ResourceFileBaseName, passedType.Assembly)
Dim obj = rm.GetObject(resourceName)

Это нормально, за исключением того, что я хочу, чтобы опция передавала только имя ресурса в конструкторе и опускала базовое имя файла ресурса.Тогда я бы взял ресурс из файла ресурсов по умолчанию.Когда я говорю «файл ресурсов по умолчанию», я имею в виду тот, который вы запускаете Visual Studio, открываете страницы свойств и нажимаете вкладку «Ресурсы».

Проблема заключается в том, что при разработке в VB.Net базовое имя - RootNamespace.Resources ', а при разработке на C # базовое имя -' Rootnamespace.Properties.Resources '.

Где можно программно найти имя файла ресурсов по умолчанию?

Обновление

Что я могу сделать, это получить список всех имен ресурсов:

t.Module.Assembly.GetManifestResourceNames

Затем я могу найти имя, оканчивающееся на Resources.resources, и использовать его для построения базового имени файла ресурса.

Это, однако, неэффективно, но я подозреваю, что это единственный способ сделать это.

1 Ответ

0 голосов
/ 02 февраля 2011

Вы можете попробовать все файлы ресурсов в сборке и проверить, доступен ли значок.

Очень трудно определить файл ресурсов по умолчанию.Например, я всегда перемещаю файлы ресурсов для моего проекта C # в корневое пространство имен.Кроме того, пользователь мог целенаправленно поместить изображение в другой файл ресурсов.

...