关于程序资源文件-深入学习笔记

可以将字符串、图像、对象数据等资源包含在资源文件之中,以供程序使用。.net平台提供了5种资源方案的支持:

一、

创建一个包含字符串资源的文本文件。 可以使用资源文件生成器 (Resgen.exe) 将文本文件转换成二进制资源 (.resources) 文件。 然后使用语言编译器将这个二进制资源文件嵌入可执行应用程序或应用程序库,或者使用程序集链接器 (Al.exe) 将这个二进制资源文件嵌入附属程序集。 有关详细信息,请参阅文本文件中的资源部分。

二、

创建一个包含字符串、图像或对象数据的 XML 资源 (.resx) 文件。 可以使用资源文件生成器 (Resgen.exe) 将 .resx 文件转换成二进制资源 (.resources) 文件。 然后使用语言编译器将这个二进制资源文件嵌入可执行应用程序或应用程序库,或者使用程序集链接器 (Al.exe) 将这个二进制资源文件嵌入附属程序集。 有关详细信息,请参阅 .resx 文件中的资源部分。

与只能存储字符串资源的文本文件不同,XML 资源 (.resx) 文件可以存储字符串、二进制数据(图像、图标和音频剪辑等)以及编程对象。 .resx 文件包含一个标准标头,用以描述资源条目的格式,并指定用于解析数据的 XML 的版本信息。 资源文件数据跟在 XML 标头之后。 每个数据项由包含在 data 标记中的一个名称/值对构成。 其 name 属性定义资源名称,而嵌套的 value 标记包含资源值。对于字符串数据,value 标记包含字符串。例如:

字符串资源:

<data name="prompt" xml:space="preserve"> <value>文本字符串</value> </data>

二进制资源,比如说一张图片:

  <data name="testPic" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\testPic.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral,         PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

或者:

  <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
        tQaIINEEGiCDRBBogg0QQaIINEEGiCDRBBogg0QQaIINEEGiCDRBBogg0QQaII//2Q==
    </value>
</data>

可以看出以上存储二进制资源的两种方式,一个是存储资源的所在路径,一个则是直接以base64的数据形式把资源本身存储下来。

三、

使用 System.Resources 命名空间中的类型以编程方式创建一个 XML 资源 (.resx) 文件。 可以创建一个 .resx 文件、枚举其资源并按名称检索特定资源。 有关详细信息,请参阅以编程方式使用 .resx 文件

四、

以编程方式创建一个二进制资源 (.resources) 文件。 然后使用语言编译器将该文件嵌入可执行应用程序或应用程序库,或者使用程序集链接器 (Al.exe) 将这个二进制资源文件嵌入附属程序集。有关详细信息,请参阅 .resources 文件中的资源部分。

五、

使用 Visual Studio 创建一个资源文件并将其包含在项目中。 Visual Studio 提供一个资源编辑器,借助该编辑器,可添加、删除和修改资源。 编译时,资源文件会自动转换成二进制 .resources 文件,并嵌入应用程序程序集或附属程序集中。 有关详细信息,请参阅 Visual Studio 中的资源文件部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值