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

Définition

Ajoute une unité de données en tant que ressource à la liste des 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 qui contient les données ajoutées.

typeName
String

Nom de type des données ajoutées.

serializedData
Byte[]

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

Exceptions

name, typeNameou serializedData est null.

name (ou un nom qui varie uniquement par mise en majuscule) a déjà été ajouté à cet ResourceWriter objet.

L’objet actuel ResourceWriter 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 sous forme binaire (autrement dit, sous la forme d’un 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 elle-même. 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 de ressources ou le flux 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, Byte, Char, Decimal, Double, Int16, Int32, Int64, Single, SByte, UInt16, UInt32, UInt64), ainsi que String, DateTime et TimeSpan. En outre, l’énumération ResourceTypeCode inclut les valeurs indiquées dans le tableau suivant.

    ResourceTypeCode Valeur 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 de Person noms, qui se trouve dans la Extensions version 1.0 d’un assembly nommé Utility qui n’a aucune clé publique et aucune 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