ResourceWriter.AddResourceData(String, String, Byte[]) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Adiciona uma unidade de dados como um recurso à lista de recursos a serem gravados.
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())
Parâmetros
- name
- String
Um nome que identifica o recurso que contém os dados adicionados.
- typeName
- String
O nome do tipo dos dados adicionados.
- serializedData
- Byte[]
Uma matriz de bytes que contém a representação binária dos dados adicionados.
Exceções
name
, typeName
ou serializedData
é null
.
name
(ou um nome que varia de acordo apenas com maiúsculas e minúsculas) já foi adicionado a este objeto ResourceWriter.
O objeto ResourceWriter não foi inicializado. A causa provável é que o objeto ResourceWriter está fechado.
Exemplos
O exemplo a seguir usa o AddResourceData método para gravar dois valores inteiros em um arquivo .resources e, em seguida, usa um ResourceReader objeto para recuperá-los.
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
Comentários
Use o AddResourceData método para adicionar um recurso em formato binário (ou seja, como uma matriz de bytes) à lista de recursos a serem gravados. Você deve especificar o nome do recurso, o nome do tipo dos dados contidos no recurso e a representação binária dos próprios dados. Depois de adicionar cada recurso necessário, use o Generate método para gravar a lista de recursos no arquivo ou fluxo de recursos especificado no ResourceWriter construtor.
typeName
é uma cadeia de caracteres que representa o tipo de dados do recurso. Pode ser qualquer um dos seguintes valores:
A representação de cadeia de caracteres de um
ResourceTypeCode
membro de enumeração que indica o tipo de dados do recurso.ResourceTypeCode
é uma enumeração privada usada por Resgen.exe para indicar que um formato binário especial é usado para armazenar um dos 19 tipos de dados comuns. Eles incluem o .NET Framework tipos de dados primitivos (Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64Single, SByte, UInt16, UInt32, ), UInt64bem como String, DateTimee TimeSpan. Além disso, aResourceTypeCode
enumeração inclui os valores mostrados na tabela a seguir.ResourceTypeCode
valorDescrição ResourceTypeCode.ByteArray
Os dados são uma matriz de bytes. ResourceTypeCode.Null
Os dados são uma referência nula. ResourceTypeCode.Stream
Os dados são armazenados em um fluxo. Uma cadeia de caracteres que contém o nome totalmente qualificado do tipo cujos dados binários são atribuídos ao
serializedData
argumento (por exemplo,System.String
). Além disso, para tipos que não fazem parte do .NET Framework biblioteca de classes, a cadeia de caracteres inclui o nome, a versão, a cultura e a chave pública do assembly que contém o tipo. Por exemplo, a cadeia de caracteres a seguir indica que os dados serializados representam uma instância doPerson
tipo noExtensions
namespace , que é encontrado na versão 1.0 de um assembly chamado Utilitário que não tem chave pública nem cultura designada.Extensions.Person, Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Um método paralelo para ler dados de recurso gravados com o AddResourceData método é ResourceReader.GetResourceData.