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 экземпляр объекта и показано, как перечислить его ресурсы и получить отдельные ресурсы по имени. Для каждого перечисляемого ресурса в примере используется 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 в таком порядке, чтобы избежать состояния гонки с методом |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |