Поделиться через


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.Key свойство в вызове GetString или GetObject методе в зависимости от того, является ли значение ресурса строкой или объектом.

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 или получить отдельные ресурсы по имени.

Объект ResXResourceSet предоставляет удобный способ чтения всех ресурсов в RESX-файле в память. Этот метод можно использовать GetObject для получения определенного ресурса при чтении RESX-файла в ResXResourceSet экземпляр.

Примечания для тех, кто наследует этот метод

Производные классы ResXResourceSet , использующие собственное средство чтения ресурсов и средство записи, должны переопределить GetDefaultReader() методы и GetDefaultWriter() предоставить соответствующие функциональные возможности для интерпретации экземпляра ResXResourceSet .

Конструкторы

Имя Описание
ResXResourceSet(Stream)

Инициализирует новый экземпляр ResXResourceSet класса с помощью системы по умолчанию ResXResourceReader для чтения ресурсов из указанного потока.

ResXResourceSet(String)

Инициализирует новый экземпляр ResXResourceSet класса с помощью системы по умолчанию ResXResourceReader , который открывает и считывает ресурсы из указанного файла.

Поля

Имя Описание
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, Boolean)

Выполняет поиск объекта ресурса с указанным именем без учета регистра при запросе.

(Унаследовано от ResourceSet)
GetObject(String)

Выполняет поиск объекта ресурса с указанным именем.

(Унаследовано от ResourceSet)
GetString(String, Boolean)

String Выполняет поиск ресурса с указанным именем без учета регистра при запросе.

(Унаследовано от ResourceSet)
GetString(String)

String Ищет ресурс с указанным именем.

(Унаследовано от ResourceSet)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ReadResources()

Считывает все ресурсы и сохраняет их в указанном в Hashtable свойстве Table .

(Унаследовано от ResourceSet)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IEnumerable.GetEnumerator()

IEnumerator Возвращает объект, чтобы избежать состояния гонки сDispose. Этот элемент не предназначен для использования непосредственно из кода.

(Унаследовано от ResourceSet)

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

Применяется к

См. также раздел