Как я могу получить доступ к встроенным ресурсам в проекте C #? - PullRequest
6 голосов
/ 07 июня 2011

Большинство тем, которые я читал об этом вопросе, отвечают, что вам просто нужно получить к ним доступ следующим образом:

<MyProjectNamespace>.Properties.Resources.<MyResourceName>

Но в процессе сборки у меня появляется это сообщение:

<MyProjectNamespace> does not contain a definition for 'Properties'

Кажется, что класс 'Свойства' обычно автоматически создается средой IDE при добавлении ресурсов в проект.

Дело в том, что я работаю над Eclipse и не знаю, как добавить ресурсы, но мне удалось сгенерировать файл .resx из Visual Studio (который я использую для разработки формы Windows), который я добавил Nant файл .build в качестве «ресурса», а также мои растровые изображения. Тогда это действительно встраивает ресурсы, но я не могу получить к ним доступ ...

Так как я могу встраивать ресурсы в свое приложение (обычно) и получать к ним доступ, используя Eclipse + Emonic + Nant для его создания?

Спасибо

Paul.

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Вы должны создать экземпляр ResourceManager, чтобы открыть файл resx, например:

ResourceManager resources = new ResourceManager("<MyProjectNamespace>.Properties.Resources", typeof(<any type in the assembly>).Assembly);
string myString = resources.GetString("myString");
Bitmap myBitmap = resources.GetObject("myBitmap") as Bitmap;

Если они являются ресурсами формы, вы также можете получить их следующим образом:

ResourceManager resources = new ResourceManager(typeof(Form1));
0 голосов
/ 07 июня 2011

Попробуйте использовать ResourceManager в пространстве имен System.Resources.Очевидно, это немного зависит от того, что вы пытаетесь получить, но мое выглядит так:

ResourceManager.GetString("String1", resourceCulture);
...