ResourceWriter.AddResourceData(String, String, Byte[]) Metodo

Definizione

Aggiunge un'unità di dati come risorsa all'elenco di risorse da scrivere.

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())

Parametri

name
String

Nome che identifica la risorsa che contiene i dati aggiunti.

typeName
String

Nome del tipo di dati aggiunti.

serializedData
Byte[]

Matrice di byte che contiene la rappresentazione binaria dei dati aggiunti.

Eccezioni

name, typeName o serializedData è null.

name (o un nome che si differenzia solo per maiuscole/minuscole) è già stato aggiunto a questo oggetto ResourceWriter.

L'oggetto ResourceWriter corrente non è inizializzato. È probabile che l'oggetto ResourceWriter sia chiuso.

Esempio

L'esempio seguente usa il AddResourceData metodo per scrivere due valori integer in un file con estensione resources e quindi usa un ResourceReader oggetto per recuperarli.

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

Commenti

Utilizzare il AddResourceData metodo per aggiungere una risorsa in formato binario, ovvero come matrice di byte, all'elenco di risorse da scrivere. È necessario specificare il nome della risorsa, il nome del tipo dei dati contenuti nella risorsa e la rappresentazione binaria dei dati stessi. Dopo aver aggiunto ogni risorsa necessaria, usare il Generate metodo per scrivere l'elenco di risorse nel file di risorse o nel flusso specificato nel ResourceWriter costruttore.

typeName è una stringa che rappresenta il tipo di dati della risorsa. Può essere uno dei valori seguenti:

  • Rappresentazione stringa di un ResourceTypeCode membro di enumerazione che indica il tipo di dati della risorsa. ResourceTypeCode è un'enumerazione privata usata da Resgen.exe per indicare che viene usato un formato binario speciale per archiviare uno dei 19 tipi di dati comuni. Questi includono i tipi di dati primitivi di .NET Framework (Boolean, Int16CharDecimalDoubleInt32SingleUInt16SByteUInt32UInt64Int64Byte), nonché StringDateTime, e .TimeSpan Inoltre, l'enumerazione ResourceTypeCode include i valori illustrati nella tabella seguente.

    Valore della proprietà ResourceTypeCode Descrizione
    ResourceTypeCode.ByteArray I dati sono una matrice di byte.
    ResourceTypeCode.Null I dati sono un riferimento Null.
    ResourceTypeCode.Stream I dati vengono archiviati in un flusso.
  • Stringa contenente il nome completo del tipo i cui dati binari vengono assegnati all'argomento serializedData , ad esempio System.String. Inoltre, per i tipi che non fanno parte della libreria di classi .NET Framework, la stringa include il nome, la versione, le impostazioni cultura e la chiave pubblica dell'assembly che contiene il tipo. Ad esempio, la stringa seguente indica che i dati serializzati rappresentano un'istanza del tipo nello Extensions spazio dei nomi, che si trova nella versione 1.0 di Person un assembly denominato Utilità senza chiave pubblica e nessuna cultura designata.

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

Un metodo parallelo per la lettura dei dati delle risorse scritti con il AddResourceData metodo è ResourceReader.GetResourceData.

Si applica a

Vedi anche