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

Definição

Adiciona uma unidade de dados como recurso à lista de recursos a escrever.

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[]

Um array 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 apenas por maiúscula) já foi adicionado a este ResourceWriter objeto.

O objeto atual ResourceWriter não está inicializado. A causa provável é que o ResourceWriter objeto está fechado.

Exemplos

O exemplo seguinte usa o AddResourceData método para escrever dois valores inteiros num ficheiro .resources, e depois usa um ResourceReader objeto para os recuperar.

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

Observações

Use o AddResourceData método para adicionar um recurso em forma binária (isto é, como um array de bytes) à lista de recursos a escrever. 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 que necessita, use o Generate método para escrever a lista de recursos no ficheiro ou fluxo de recursos especificado no ResourceWriter construtor.

typeName é uma cadeia que representa o tipo de dado do recurso. Pode ser qualquer um dos seguintes valores:

  • A representação em cadeia de um ResourceTypeCode membro de enumeração que indica o tipo de dado 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. Estes 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 apresentados na tabela seguinte.

    ResourceTypeCode valor Descrição
    ResourceTypeCode.ByteArray Os dados são um array de bytes.
    ResourceTypeCode.Null Os dados são uma referência nula.
    ResourceTypeCode.Stream Os dados são armazenados num fluxo.
  • Uma cadeia 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 .NET Framework, a cadeia inclui o nome, versão, cultura e chave pública do assembly que contém o tipo. Por exemplo, a cadeia seguinte indica que os dados serializados representam uma instância do Person tipo no Extensions namespace, que se encontra na versão 1.0 de uma assembly chamada Utility 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 recursos escritos com este AddResourceData método é ResourceReader.GetResourceData.

Aplica-se a

Ver também