如何在C#项目中访问嵌入资源?

7

我看过关于这个问题的大部分帖子,答案是你只需要像这样访问它们:

<MyProjectNamespace>.Properties.Resources.<MyResourceName>

但是在构建过程中,我遇到了以下信息:

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

似乎在添加资源到项目时,IDE通常会自动生成'Properties'类。

事实上,我正在使用Eclipse工作,不太知道如何添加资源,但我设法从Visual Studio(我用于设计Windows表单)生成.resx文件,并将其作为“资源”添加到Nant.build文件中,连同我的位图。然后它确实嵌入了资源,但我无法访问它们...

那么,我该如何正常地嵌入应用程序中的资源,并使用Eclipse + Emonic + Nant来构建它来访问它们呢?

谢谢,

保罗。
2个回答

3
您需要创建一个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
尝试在System.Resources命名空间中使用ResourceManager。显然,这取决于您要检索的内容,但我的代码看起来像这样:
ResourceManager.GetString("String1", resourceCulture);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接