Я создал атрибут, похожий на 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, и использовать его для построения базового имени файла ресурса.
Это, однако, неэффективно, но я подозреваю, что это единственный способ сделать это.