Ресурсы в файле формата .Resources
Обновлен: Ноябрь 2007
Класс ResourceWriter предназначен специально для создания файлов .resources. Следует помнить, что объекты можно сохранять только в файлах ресурсов с расширением .resources или .resx. Только файл ресурсов в формате .resources можно включить в исполняемый файл или скомпилировать в виде вспомогательной сборки. Можно создавать файлы .resources непосредственно из кода с помощью класса ResourceWriter или использовать для этого генератор файлов ресурсов (Resgen.exe).
![]() |
---|
Не следует использовать файлы ресурсов для хранения паролей, секретных сведений или личных данных. |
Использование класса ResourceWriter
Для создания файла .resources непосредственно из кода можно использовать класс ResourceWriter. Сначала следует создать объект ResourceWriter с уникальным именем файла. Затем для каждой строки, которую необходимо добавить в файл, вызывается метод ResourceWriter.AddResource. Наконец, для записи этих строк в файл ресурсов необходимо вызвать метод ResourceWriter.Close, который затем закрывает объект ResourceWriter. Этот процесс показан в приведенном ниже примере.
Imports System
Imports System.Resources
Public Class SampleClass
Public Shared Sub Main()
' Create a resource writer.
Dim rw As IResourceWriter
rw = new ResourceWriter("myStrings.resources")
' Add resources to the file.
rw.AddResource("color1", "red")
rw.AddResource("color2", "green")
rw.AddResource("color3", "blue")
' Close the ResourceWriter.
rw.Close()
End Sub
End Class
using System;
using System.Resources;
public class SampleClass
{
public static void Main()
{
// Create a resource writer.
IResourceWriter rw = new ResourceWriter("myStrings.resources");
// Add resources to the file.
rw.AddResource("color1", "red");
rw.AddResource("color2", "green");
rw.AddResource("color3", "blue");
// Close the ResourceWriter.
rw.Close();
}
}
Использование Resgen.exe
Генератор файлов ресурсов (Resgen.exe) преобразует файлы .txt в файлы .resources с применением оболочек методов, реализованных в классе ResourceWriter. Кроме того, Resgen.exe создает оболочку объекта ResourceReader, что позволяет с его помощью преобразовывать файлы .resources обратно в файлы .txt.
![]() |
---|
При считывании текстового файла при помощи Resgen.exe примечания утрачиваются и не записываются в результирующий файл .resources или .resx. |
Если в текстовом файле содержатся совпадающие имена ресурсов, Resgen.exe выведет предупреждение и пропустит совпадающие имена.
Следующая команда Resgen.exe создает файл ресурсов strings.resources из входного файла strings.txt.
resgen strings.txt
Если имя итогового файла должно отличаться от имени входного файла, необходимо явным образом указать имя итогового файла. Следующая команда создает файл ресурсов MyApp.resources из входного файла strings.txt.
resgen strings.txt MyApp.resources
Следующая команда создает текстовый файл strings.txt из входного файла strings.resources. Обратите внимание, что преобразования такого типа следует выполнять только с файлами .resources, которые содержат исключительно строки. В файл .txt не могут быть записаны ссылки на объекты.
resgen strings.resources strings.txt
Программа Resgen.exe преобразует файлы .resx в файлы .resources с применением оболочек методов, реализованных в классе ResourceWriter. Кроме того, Resgen.exe создает оболочку объекта ResourceReader, что позволяет с его помощью преобразовывать файлы .resources обратно в файлы .resx.
Следующая команда Resgen.exe создает файл ресурсов items.resources из входного файла items.resx.
resgen items.resx
Следующая команда создает файл .resx items.resx из входного файла items.resources. Обратите внимание, что при преобразовании файла .resx в файл .resources все объекты сохраняются.
resgen items.resources items.resx
![]() |
---|
В случае любого сбоя Resgen.exe возвращается значение "–1". |
См. также
Основные понятия
Ресурсы в формате текстового файла