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

Definitie

Voegt een gegevenseenheid als resource toe aan de lijst met resources die moeten worden geschreven.

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

Parameters

name
String

Een naam die de resource identificeert die de toegevoegde gegevens bevat.

typeName
String

De typenaam van de toegevoegde gegevens.

serializedData
Byte[]

Een bytematrix die de binaire weergave van de toegevoegde gegevens bevat.

Uitzonderingen

name, typeNameof serializedData is null.

name (of een naam die alleen varieert met hoofdlettergebruik) is al toegevoegd aan dit ResourceWriter object.

Het huidige ResourceWriter object is niet geïnitialiseerd. De waarschijnlijke oorzaak is dat het ResourceWriter object is gesloten.

Voorbeelden

In het volgende voorbeeld wordt de AddResourceData methode gebruikt om twee gehele getallen naar een .resources-bestand te schrijven en vervolgens een ResourceReader object te gebruiken om ze op te halen.

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

Opmerkingen

Gebruik de AddResourceData methode om een resource in binaire vorm (dat wil gezegd, als matrix van bytes) toe te voegen aan de lijst met resources die moeten worden geschreven. U moet de naam van de resource, de typenaam van de gegevens in de resource en de binaire weergave van de gegevens zelf opgeven. Nadat u elke resource hebt toegevoegd die u nodig hebt, gebruikt u de Generate methode om de lijst met resources te schrijven naar het resourcesbestand of de stroom die is opgegeven in de ResourceWriter constructor.

typeName is een tekenreeks die het gegevenstype van de resource vertegenwoordigt. Dit kan een van de volgende waarden zijn:

  • De tekenreeksweergave van een ResourceTypeCode opsommingslid dat het gegevenstype van de resource aangeeft. ResourceTypeCode is een persoonlijke opsomming die door Resgen.exe wordt gebruikt om aan te geven dat een speciale binaire indeling wordt gebruikt om een van de 19 algemene gegevenstypen op te slaan. Deze omvatten de primitieve gegevenstypen van .NET Framework (Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, Single, SByte, UInt16, UInt32, UInt64), evenals String, DateTime en TimeSpan. Daarnaast bevat de ResourceTypeCode opsomming de waarden die in de volgende tabel worden weergegeven.

    ResourceTypeCode waarde Description
    ResourceTypeCode.ByteArray De gegevens zijn een bytematrix.
    ResourceTypeCode.Null De gegevens zijn een null-verwijzing.
    ResourceTypeCode.Stream De gegevens worden opgeslagen in een stroom.
  • Een tekenreeks die de volledig gekwalificeerde naam van het type bevat waarvan binaire gegevens zijn toegewezen aan het serializedData argument (bijvoorbeeld System.String). Bovendien bevat de tekenreeks voor typen die geen deel uitmaken van .NET Framework-klassebibliotheek de naam, versie, cultuur en openbare sleutel van de assembly die het type bevat. De volgende tekenreeks geeft bijvoorbeeld aan dat de geserialiseerde gegevens een exemplaar van het Person type in de Extensions naamruimte vertegenwoordigen, dat wordt gevonden in versie 1.0 van een assembly met de naam Utility die geen openbare sleutel en geen aangewezen cultuur heeft.

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

Een parallelle methode voor het lezen van resourcegegevens die zijn geschreven met de AddResourceData methode is ResourceReader.GetResourceData.

Van toepassing op

Zie ook