ResourceWriter.AddResourceData(String, String, Byte[]) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет единицу данных как ресурс в список ресурсов для записи.
public:
void AddResourceData(System::String ^ name, System::String ^ typeName, cli::array <System::Byte> ^ serializedData);
public void AddResourceData (string name, string typeName, byte[] serializedData);
member this.AddResourceData : string * string * byte[] -> unit
Public Sub AddResourceData (name As String, typeName As String, serializedData As Byte())
Параметры
- name
- String
Имя, которое идентифицирует ресурс, содержащий добавленные данные.
- typeName
- String
Имя типа добавленных данных.
- serializedData
- Byte[]
Массив байтов, содержащий двоичное представление добавленных данных.
Исключения
Значение параметра name
, typeName
или serializedData
равно null
.
Параметр name
(или имя, которое отличается лишь регистром) уже добавлен к этому объекту ResourceWriter.
Текущий объект ResourceWriter не инициализирован. Вероятно, причина в том, что объект ResourceWriter закрыт.
Примеры
В следующем примере метод используется AddResourceData для записи двух целочисленных значений в RESOURCES-файл, а затем используется объект для ResourceReader их извлечения.
using System;
using System.Collections;
using System.Resources;
public class Example
{
public static void Main()
{
ResourceWriter rw = new ResourceWriter(@".\TypeResources.resources");
int n1 = 1032;
rw.AddResourceData("Integer1", "ResourceTypeCode.Int32", BitConverter.GetBytes(n1));
int n2 = 2064;
rw.AddResourceData("Integer2", "ResourceTypeCode.Int32", BitConverter.GetBytes(n2));
rw.Generate();
rw.Close();
ResourceReader rr = new ResourceReader(@".\TypeResources.resources");
IDictionaryEnumerator e = rr.GetEnumerator();
while (e.MoveNext())
Console.WriteLine("{0}: {1}", e.Key, e.Value);
}
}
// The example displays the following output:
// Integer2: 2064
// Integer1: 1032
Imports System.Collections
Imports System.Resources
Module Example
Public Sub Main()
Dim rw As New ResourceWriter(".\TypeResources.resources")
Dim n1 As Integer = 1032
rw.AddResourceData("Integer1", "ResourceTypeCode.Int32", BitConverter.GetBytes(n1))
Dim n2 As Integer = 2064
rw.AddResourceData("Integer2", "ResourceTypeCode.Int32", BitConverter.GetBytes(n2))
rw.Generate()
rw.Close()
Dim rr As New ResourceReader(".\TypeResources.resources")
Dim e As IDictionaryEnumerator = rr.GetEnumerator()
Do While e.MoveNext()
Console.WriteLine("{0}: {1}", e.Key, e.Value)
Loop
End Sub
End Module
' The example displays the following output:
' Integer2: 2064
' Integer1: 1032
Комментарии
Используйте метод , AddResourceData чтобы добавить ресурс в двоичной форме (то есть в виде массива байтов) в список записываемых ресурсов. Необходимо указать имя ресурса, имя типа данных, содержащихся в ресурсе, и двоичное представление самих данных. Добавив каждый необходимый ресурс, используйте Generate метод , чтобы записать список ресурсов в файл ресурсов или поток, указанный в конструкторе ResourceWriter .
typeName
— это строка, представляющая тип данных ресурса. В качестве такой точки может выступать любой из следующих вариантов:
Строковое представление
ResourceTypeCode
элемента перечисления, указывающее тип данных ресурса.ResourceTypeCode
— это частное перечисление, которое используется Resgen.exe , чтобы указать, что для хранения одного из 19 распространенных типов данных используется специальный двоичный формат. К ним относятся платформа .NET Framework примитивные типы данных (Boolean, , ByteChar, DecimalDouble, Int16, Int32, Int64, Single, SByte, UInt16, UInt32, ), UInt64а также String, DateTimeи TimeSpan. Кроме того, перечислениеResourceTypeCode
включает значения, показанные в следующей таблице.Значение ResourceTypeCode
Описание ResourceTypeCode.ByteArray
Данные являются массивом байтов. ResourceTypeCode.Null
Данные являются пустой ссылкой. ResourceTypeCode.Stream
Данные хранятся в потоке. Строка, содержащая полное имя типа, двоичные данные которого назначены аргументу
serializedData
(например,System.String
). Кроме того, для типов, которые не являются частью библиотеки классов платформа .NET Framework, строка включает имя, версию, язык и региональные параметры и открытый ключ сборки, содержащей тип. Например, следующая строка указывает, что сериализованные данные представляют экземпляр типа вExtensions
пространстве имен, который находится в версии 1.0 сборки с именем Utility, у которой нет открытогоPerson
ключа и языка и региональных параметров.Extensions.Person, Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Параллельный метод для чтения данных ресурса, записанных AddResourceData с помощью метода , — .ResourceReader.GetResourceData