ResourceWriter.AddResourceData(String, String, Byte[]) Método

Definição

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, a ResourceTypeCode enumeração inclui os valores mostrados na tabela a seguir.

    ResourceTypeCode valor Descriçã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 do Person tipo no Extensions 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.

Aplica-se a

Confira também