Freigeben über


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

Definition

Fügt der Liste der zu schreibenden Ressourcen eine Dateneinheit als Ressource hinzu.

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

Parameter

name
String

Ein Name, der die Ressource identifiziert, die die hinzugefügten Daten enthält.

typeName
String

Der Typname der hinzugefügten Daten.

serializedData
Byte[]

Ein Bytearray, das die binäre Darstellung der hinzugefügten Daten enthält.

Ausnahmen

name, typeName oder serializedData ist null.

name (oder ein Name, der sich nur in Groß- und Kleinschreibung davon unterscheidet) wurde diesem ResourceWriter-Objekt bereits hinzugefügt.

Das aktuelle ResourceWriter-Objekt ist nicht initialisiert. Die wahrscheinlichste Ursache ist, dass das ResourceWriter-Objekt geschlossen ist.

Beispiele

Im folgenden Beispiel wird die AddResourceData -Methode verwendet, um zwei ganzzahlige Werte in eine RESOURCES-Datei zu schreiben, und dann wird ein ResourceReader -Objekt verwendet, um sie abzurufen.

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

Hinweise

Verwenden Sie die AddResourceData -Methode, um der Liste der zu schreibenden Ressourcen eine Ressource in binärer Form (d. h. als Array von Bytes) hinzuzufügen. Sie müssen den Namen der Ressource, den Typnamen der in der Ressource enthaltenen Daten und die binäre Darstellung der Daten selbst angeben. Nachdem Sie jede ressource hinzugefügt haben, die Sie benötigen, verwenden Sie die Generate -Methode, um die Liste der Ressourcen in die Ressourcendatei oder den Datenstrom zu schreiben, die ResourceWriter im Konstruktor angegeben wurde.

typeName ist eine Zeichenfolge, die den Datentyp der Ressource darstellt. Dabei kann es sich um einen der folgenden Werte handeln:

  • Die Zeichenfolgendarstellung eines Enumerationsmembers ResourceTypeCode , der den Datentyp der Ressource angibt. ResourceTypeCode ist eine private Enumeration, die von Resgen.exe verwendet wird, um anzugeben, dass ein spezielles Binärformat zum Speichern eines von 19 gängigen Datentypen verwendet wird. Dazu gehören die .NET Framework primitiven Datentypen (Boolean, , Byte, CharDecimal, Double, Int16Int64Int32Single, SByte, UInt16, , UInt32, ), UInt64sowie String, DateTimeund .TimeSpan Darüber hinaus enthält die ResourceTypeCode Enumeration die Werte, die in der folgenden Tabelle dargestellt sind.

    ResourceTypeCode-Wert BESCHREIBUNG
    ResourceTypeCode.ByteArray Die Daten sind ein Bytearray.
    ResourceTypeCode.Null Die Daten sind ein NULL-Verweis.
    ResourceTypeCode.Stream Die Daten werden in einem Stream gespeichert.
  • Eine Zeichenfolge, die den vollqualifizierten Namen des Typs enthält, dessen Binärdaten dem serializedData Argument zugewiesen sind (z. B System.String. ). Darüber hinaus enthält die Zeichenfolge für Typen, die nicht Teil der .NET Framework Klassenbibliothek sind, den Namen, die Version, die Kultur und den öffentlichen Schlüssel der Assembly, die den Typ enthält. Die folgende Zeichenfolge gibt beispielsweise an, dass die serialisierten Daten eine instance des Person Typs im Namespace darstellen, die Extensions in Version 1.0 einer Assembly namens Hilfsprogramm gefunden wird, die keinen öffentlichen Schlüssel und keine festgelegte Kultur aufweist.

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

Eine parallele Methode zum Lesen von Ressourcendaten, die mit der AddResourceData -Methode geschrieben wurden, ist ResourceReader.GetResourceData.

Gilt für:

Weitere Informationen