(4) Mainfest Resource Namespaces
如果传递给 GetMainfestResourcesStream 方法 一个System.Type 对象,则它会用此类型的命名空间当作嵌入资源的前缀的一部分,如:
// Load the stream for resource "ResourcesSample.Azul.jpg"
Stream stream = asm.GetManifestResourceStream(this.GetType(), "Azul.jpg");
Bitmap 类也可以直接装载嵌入的资源,如:
// Load image from "ResourcesApp.Azul.jpg"
this.BackgroundImage =new Bitmap(this.GetType(), "Azul.jpg");
2. Strongly Typed Resources
在清单资源中不包含类型信息,虽然文件带有扩展名,但是类似Bitmap类是根据数据本身来判断类型的。
(1) Application Resources(.resx) Files
资源文件(.resx)的主要作用就是记录资源的相应类型信息,由于采用了.NET特定的XML方案(ResX)来保存资源类型信息。一个空的 .resx 文件也有42行内容,大多数都是方案信息。这个方案允许有许多条目信息,每个都包含name、value, comment, type 和 Multipurpose Internet Mail Extensions(MIME) type。虽然此文件是基于文本的,但是如果要编辑或者阅读,最好还是通过VS2005的资源编辑器来完成。
.resx 格式中的名称/值对在 XML 代码中打包,它描述字符串或对象值。当字符串被添加到 .resx 文件中时,该字符串的名称被嵌入在 <data> 标记中,并且值包括在 <value> 标记内,如以下示例所示。
当一个对象被插入到 .resx 文件中时,使用相同的 <data> 和 <value> 标记来描述该项,但 <data> 标记要包括类型或 MIME 类型说明符。类型说明符保留所保存对象的数据类型。如果对象由二进制数据组成,则 MIME 类型说明符保持所存储的二进制信息的基类型 (Base64)。
(2) Managing Resources
资源编辑器支持六类资源:
a. 字符串 : 在带有字符串资源的“名称”、“值”和“注释”列的设置网格中显示字符串。
b. 图像 : 显示所有图像文件(包括 .bmp、.jpg 和 .gif 格式)。这些文件在运行时作为 Bitmap 公开。此类别也包括作为 Metafile 公开的 Windows 图元文件。
c. 图标
d. 音频 : 显示声音文件(包括 .wav、.wma 和 .mp3 文件)。这些文件作为字节数组公开。
e. 文件 : 显示不适合以上类别的任何文件。此视图中的项是作为 String 公开的文本文件,或是作为字节数组公开的二进制文件。
f. 其他 : 显示用来添加其他支持字符串序列化的类型(例如,Font、Enum、Color 和 Point)的设置网格。此网格包含以下列:“名称”、“类型”、“值”和“注释”。
添加资源:
可以通过拖放、菜单选择来添加资源,通过资源编辑器添加到.resx文件的所有资源文件都会放到项目文件夹下的Resources文件夹下,如果不存在则创建。如果将一个已经存在项目里的资源添加到.resx文件中,则这个资源不会被移动或拷贝到Resources文件夹下,因为资源编辑器是通过对文件的引用来管理资源文件,resx文件仅仅存放实际清单资源的类型信息。










