Comparteix a través de


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

Definición

Agrega una unidad de datos como recurso a la lista de recursos que se va a escribir.

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

Nombre que identifica el recurso que contiene los datos agregados.

typeName
String

Nombre de tipo de los datos agregados.

serializedData
Byte[]

Matriz de bytes que contiene la representación binaria de los datos agregados.

Excepciones

name, typeName o serializedData es null.

name (o un nombre que se diferencia sólo en las mayúsculas y minúsculas) ya se ha agregado a este objeto ResourceWriter.

No se ha inicializado el objeto ResourceWriter actual. La causa probable es que el objeto ResourceWriter esté cerrado.

Ejemplos

En el ejemplo siguiente se usa el AddResourceData método para escribir dos valores enteros en un archivo .resources y, a continuación, se usa un ResourceReader objeto para recuperarlos.

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

Comentarios

Use el AddResourceData método para agregar un recurso en formato binario (es decir, como una matriz de bytes) a la lista de recursos que se van a escribir. Debe especificar el nombre del recurso, el nombre de tipo de los datos contenidos en el recurso y la representación binaria de los propios datos. Después de agregar cada recurso que necesite, use el Generate método para escribir la lista de recursos en el archivo de recursos o secuencia que se especificó en el ResourceWriter constructor.

typeName es una cadena que representa el tipo de datos del recurso. Puede ser cualquiera de los siguientes valores:

  • Representación de cadena de un ResourceTypeCode miembro de enumeración que indica el tipo de datos del recurso. ResourceTypeCode es una enumeración privada que usa Resgen.exe para indicar que se usa un formato binario especial para almacenar uno de los 19 tipos de datos comunes. Entre ellos se incluyen los tipos de datos primitivos de .NET Framework (Boolean, Byte, Int64StringUInt16UInt32SByteUInt64DateTimeCharDoubleTimeSpanDecimalInt16Int32Singley . Además, la ResourceTypeCode enumeración incluye los valores que se muestran en la tabla siguiente.

    Valor de ResourceTypeCode Descripción
    ResourceTypeCode.ByteArray Los datos son una matriz de bytes.
    ResourceTypeCode.Null Los datos son una referencia nula.
    ResourceTypeCode.Stream Los datos se almacenan en una secuencia.
  • Cadena que contiene el nombre completo del tipo cuyos datos binarios se asignan al serializedData argumento (por ejemplo, System.String). Además, para los tipos que no forman parte de la biblioteca de clases de .NET Framework, la cadena incluye el nombre, la versión, la referencia cultural y la clave pública del ensamblado que contiene el tipo. Por ejemplo, la cadena siguiente indica que los datos serializados representan una instancia del tipo en el Person espacio de nombres , que se encuentra en la Extensions versión 1.0 de un ensamblado denominado Utility que no tiene ninguna clave pública y ninguna referencia cultural designada.

    Extensions.Person, Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Un método paralelo para leer los datos de recursos escritos con el AddResourceData método es ResourceReader.GetResourceData.

Se aplica a

Consulte también