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


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)

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

(Унаследовано от 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.

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

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