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, typeNameou serializedData é null.

name (ou um nome que varia apenas por capitalização) já foi adicionado a esse ResourceWriter objeto.

O objeto atual ResourceWriter não é inicializado. A causa provável é que o ResourceWriter objeto 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 no 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. O valor pode ser um destes:

  • 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 os tipos de dados primitivos do .NET Framework (Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, Single, SByte, UInt16, UInt32, UInt64), bem como String, DateTime e TimeSpan. Além disso, a ResourceTypeCode enumeração inclui os valores mostrados na tabela a seguir.

    ResourceTypeCode Valor Description
    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 da biblioteca de classes do .NET Framework, 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 nenhuma chave pública e nenhuma 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