创建资源文件

更新:2007 年 11 月

.NET Framework 的基类库在 System.Resources 命名空间中提供几种形式的类,可帮助您创建和操纵应用程序中的资源。有关如何使用每一类的详细说明,请在链接上单击以查看相应的参考主题。

说明

IResourceReader 接口

从流读取资源。

IResourceWriter 接口

将资源写入到流。

ResourceReader 类

以运行库默认二进制资源文件格式读取资源。这是 IResourceReader 接口的默认实现。

ResourceWriter 类

以运行库默认二进制资源文件格式写入资源。这是 IResourceWriter 接口的默认实现。

ResXResourceReader 类

提供检索从 .resx 文件创建的资源的能力。这是 IResourceReader 接口的专用实现。

ResXResourceWriter 类

提供从特定资源创建 .resx 文件的能力。这是 IResourceWriter 的专用实现。使用资源文件生成器 (Resgen.exe) 将 .resx 文件转换为 .resources 文件格式。

您可以采用三种不同的方式创建资源文件。如果您的资源将只包含字符串数据,则最简单的方法是手动创建文本文件。如果您的资源将包含对象或字符串与对象的组合,则您必须创建 .resx 文件或 .resources 文件。有关每一文件类型的信息,请单击相应的链接。

说明:

不要使用资源文件来存储密码、安全敏感信息或保密数据。

若要将持久对象写入资源文件,这些对象必须是可序列化的。.NET Framework 类型(如字符串和整数)和一组 Windows 窗体类型(如 BitmapIconImage)可以由不完全受信任的代码进行反序列化。若要对其他类型进行反序列化,必须向调用它们的代码授予 SecurityPermission,并指定 SerializationFormatter 标志。

标记为专用的资源只能在它们所在的程序集中进行访问。因为附属程序集不包含任何代码,所以通过任何机制都无法访问到专用于它的资源。因此,附属程序集中的资源应该始终是公共的,以便从主程序集中可以访问这些资源。嵌入在主程序集中的资源可以从主程序集中访问,而不管这些资源是专用还是公共的。

您的应用程序决不应依赖于您未创建而随该应用程序附带的程序集中的资源。对第三方资源的依赖性可能会使您的应用程序失败,因为无法确保这些资源会在将来的版本或现有的服务包中提供。

只有 .resources 文件才应嵌入在公共语言运行库程序集和附属程序集中。资源文件生成器 (Resgen.exe) 将文本 (.txt) 文件和基于 XML 的资源 (.resx) 文件转换成 .resources 文件,方法是包装由 ResourceReaderResourceWriterResXResourceReaderResXResourceWriter 类实现的方法。您还可以使用 Resgen.exe 来将 .resources 文件转换回 .resx 和 .txt 文件。

Microsoft Windows 软件开发工具包 (SDK) 提供了几个示例来演示如何使用 .resource 文件。请参见 应用程序中的资源ASP.NET 快速入门的“本地化”示例和常见任务快速入门的“如何:资源”。

请参见

概念

应用程序中的资源

打包和部署资源

参考

System.Resources