Partager via


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

Définition

Ajoute une unité de données comme ressource dans la liste de ressources à écrire.

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

Paramètres

name
String

Nom qui identifie la ressource contenant les données ajoutées.

typeName
String

Nom du type des données ajoutées.

serializedData
Byte[]

Tableau d’octets qui contient la représentation binaire des données ajoutées.

Exceptions

name, typeName ou serializedData est null.

name (ou un nom qui diffère uniquement par les majuscules) a déjà été ajouté à cet objet ResourceWriter.

L’objet ResourceWriter actuel n’est pas initialisé. La cause probable est que l’objet ResourceWriter est fermé.

Exemples

L’exemple suivant utilise la AddResourceData méthode pour écrire deux valeurs entières dans un fichier .resources, puis utilise un ResourceReader objet pour les récupérer.

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

Remarques

Utilisez la AddResourceData méthode pour ajouter une ressource au format binaire (autrement dit, sous forme de tableau d’octets) à la liste des ressources à écrire. Vous devez spécifier le nom de la ressource, le nom de type des données contenues dans la ressource et la représentation binaire des données elles-mêmes. Une fois que vous avez ajouté chaque ressource dont vous avez besoin, utilisez la Generate méthode pour écrire la liste des ressources dans le fichier ou le flux de ressources spécifié dans le ResourceWriter constructeur.

typeName est une chaîne qui représente le type de données de la ressource. Il peut s’agir de l’une des valeurs suivantes :

  • Représentation sous forme de chaîne d’un ResourceTypeCode membre d’énumération qui indique le type de données de la ressource. ResourceTypeCode est une énumération privée utilisée par Resgen.exe pour indiquer qu’un format binaire spécial est utilisé pour stocker l’un des 19 types de données courants. Il s’agit notamment des types de données primitifs .NET Framework (Boolean, CharByte, Int64Int16SByteDoubleDecimalInt32Single, UInt16, UInt64StringUInt32DateTimeet .TimeSpan En outre, l’énumération ResourceTypeCode inclut les valeurs indiquées dans le tableau suivant.

    Valeur ResourceTypeCode Description
    ResourceTypeCode.ByteArray Les données sont un tableau d’octets.
    ResourceTypeCode.Null Les données sont une référence null.
    ResourceTypeCode.Stream Les données sont stockées dans un flux.
  • Chaîne qui contient le nom complet du type dont les données binaires sont affectées à l’argument serializedData (par exemple, System.String). En outre, pour les types qui ne font pas partie de la bibliothèque de classes .NET Framework, la chaîne inclut le nom, la version, la culture et la clé publique de l’assembly qui contient le type. Par exemple, la chaîne suivante indique que les données sérialisées représentent une instance du type dans l’espace Person de noms, qui se trouve dans la Extensions version 1.0 d’un assembly nommé Utility qui n’a ni clé publique ni culture désignée.

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

Une méthode parallèle pour lire les données de ressource écrites avec la AddResourceData méthode est ResourceReader.GetResourceData.

S’applique à

Voir aussi