ResXResourceSet 类

定义

表示 XML 资源 (.resx) 文件中的所有资源。

public ref class ResXResourceSet : System::Resources::ResourceSet
public class ResXResourceSet : System.Resources.ResourceSet
type ResXResourceSet = class
    inherit ResourceSet
Public Class ResXResourceSet
Inherits ResourceSet
继承
ResXResourceSet

示例

以下示例实例化对象 ResXResourceSet ,并演示如何按名称枚举其资源并检索单个资源。 对于它枚举的每个资源,该示例使用 IDictionaryEnumerator.KeyGetStringGetObject 方法的调用中的属性,具体取决于资源的值是字符串还是对象。

using System;
using System.Collections;
using System.Drawing;
using System.Resources;

public class Example
{
   public static void Main()
   {
      CreateResXFile();
      
      ResXResourceSet resSet = new ResXResourceSet(@".\StoreResources.resx");
      IDictionaryEnumerator dict = resSet.GetEnumerator();
      while (dict.MoveNext()) {
         string key = (string) dict.Key;
         // Retrieve resource by name.
         if (dict.Value is string)
            Console.WriteLine("{0}: {1}", key, resSet.GetString(key));
         else
            Console.WriteLine("{0}: {1}", key, resSet.GetObject(key));   
      }
   }

   private static void CreateResXFile()
   {
      Bitmap logo = new Bitmap(@".\Logo.bmp");
      ResXDataNode node;
      
      ResXResourceWriter rw = new ResXResourceWriter(@".\StoreResources.resx");
      node = new ResXDataNode("Logo", logo);
      node.Comment = "The corporate logo.";
      rw.AddResource(node); 
      rw.AddResource("AppTitle", "Store Locations");
      node = new ResXDataNode("nColumns", 5);
      node.Comment = "The number of columns in the Store Location table";
      rw.AddResource(node);
      rw.AddResource("City", "City");
      rw.AddResource("State", "State");
      rw.AddResource("Code", "Zip Code");
      rw.AddResource("Telephone", "Phone");
      rw.Generate();
      rw.Close();
   }
}
// The example displays the following output:
//       Telephone: Phone
//       Code: Zip Code
//       State: State
//       City: City
//       nColumns: 5
//       AppTitle: Store Locations
//       Logo: System.Drawing.Bitmap
Imports System.Collections
Imports System.Drawing
Imports System.Resources

Module Example
   Public Sub Main()
      CreateResXFile()
      
      Dim resSet As New ResXResourceSet(".\StoreResources.resx")
      Dim dict As IDictionaryEnumerator = resSet.GetEnumerator()
      Do While dict.MoveNext()
         Dim key As String = CStr(dict.Key)
         ' Retrieve resource by name.
         If typeof dict.Value Is String Then
            Console.WriteLine("{0}: {1}", key, resSet.GetString(key))
         Else
            Console.WriteLine("{0}: {1}", key, resSet.GetObject(key))   
         End If
      Loop
   End Sub
   
   Private Sub CreateResXFile()
      Dim logo As New Bitmap(".\Logo.bmp")
      Dim node As ResXDataNode
      
      Dim rw As New ResXResourceWriter(".\StoreResources.resx")
      node = New ResXDataNode("Logo", logo)
      node.Comment = "The corporate logo."
      rw.AddResource(node) 
      rw.AddResource("AppTitle", "Store Locations")
      node = New ResXDataNode("nColumns", 5)
      node.Comment = "The number of columns in the Store Location table"
      rw.AddResource(node)
      rw.AddResource("City", "City")
      rw.AddResource("State", "State")
      rw.AddResource("Code", "Zip Code")
      rw.AddResource("Telephone", "Phone")
      rw.Generate()
      rw.Close()
   End Sub
End Module
' The example displays the following output:
'       Telephone: Phone
'       Code: Zip Code
'       State: State
'       City: City
'       nColumns: 5
'       AppTitle: Store Locations
'       Logo: System.Drawing.Bitmap

该示例调用一个 CreateResXFile 方法来创建必要的 XML 资源文件。 它需要在运行示例的目录中Logo.bmp名为位图文件。

注解

ResXResourceSet 枚举一个 IResourceReader、加载每个名称和值,并将其存储在哈希表中。 然后,可以枚举对象中的 ResXResourceSet 资源或按名称检索单个资源。

备注

此类包含 SecurityAction.LinkDemand 应用于所有成员的类级别和 SecurityAction.InheritanceDemand 类级别。 SecurityException当即时调用方或派生类没有完全信任权限时,将引发异常。

对象 ResXResourceSet 提供了一种将 .resx 文件中的所有资源读入内存的便捷方法。 当 .resx 文件已读入ResXResourceSet实例时,可以使用GetObject该方法检索特定资源。

继承者说明

使用其自己的资源读取器和编写器的派生类 ResXResourceSet 应重写 GetDefaultReader()GetDefaultWriter() 方法,以提供用于解释 ResXResourceSet 实例的适当功能。

构造函数

ResXResourceSet(Stream)

使用从所指定流读取资源的系统默认的 ResXResourceReader 来初始化 ResXResourceSet 类的新实例。

ResXResourceSet(String)

使用打开和读取指定文件中的资源的系统默认值ResXResourceReader初始化类的新实例ResXResourceSet

字段

Reader

指示用于读取资源的 IResourceReader

(继承自 ResourceSet)
Table

存储资源的 Hashtable

(继承自 ResourceSet)

方法

Close()

通过此 ResourceSet 来关闭和释放所有资源。

(继承自 ResourceSet)
Dispose()

处置由 ResourceSet 的当前实例使用的资源(内存除外)。

(继承自 ResourceSet)
Dispose(Boolean)

释放与当前实例关联的资源(内存除外),并关闭内部托管对象(如果请求这样做)。

(继承自 ResourceSet)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetDefaultReader()

返回此类 ResXResourceSet 的首选资源读取器类。

GetDefaultWriter()

返回此类 ResXResourceSet 的首选资源编写器类。

GetEnumerator()

返回 IDictionaryEnumerator,它可以循环访问 ResourceSet

(继承自 ResourceSet)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetObject(String)

搜索具有指定名称的资源对象。

(继承自 ResourceSet)
GetObject(String, Boolean)

如果请求的话,按照不区分大小写的方式搜索具有指定名称的资源对象。

(继承自 ResourceSet)
GetString(String)

搜索具有指定名称的 String 资源。

(继承自 ResourceSet)
GetString(String, Boolean)

如果请求的话,按照不区分大小写的方式搜索具有指定名称的 String 资源。

(继承自 ResourceSet)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ReadResources()

读取所有资源,并将它们存储在 Hashtable 属性中指示的 Table 中。

(继承自 ResourceSet)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

IEnumerable.GetEnumerator()

返回一个 IEnumerator 对象,以避免与 Dispose 之间出现争用情况。 不应直接从代码中使用此成员。

(继承自 ResourceSet)

扩展方法

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定的类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅