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