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

Definice

Přidá jednotku dat jako prostředek do seznamu prostředků, které se mají zapsat.

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

Parametry

name
String

Název, který identifikuje prostředek, který obsahuje přidaná data.

typeName
String

Název typu přidaných dat.

serializedData
Byte[]

Bajtové pole, které obsahuje binární reprezentaci přidaných dat.

Výjimky

name, typeNamenebo serializedData je null.

name (nebo název, který se liší pouze velkými písmeny) již byl přidán do tohoto ResourceWriter objektu.

Aktuální ResourceWriter objekt není inicializován. Pravděpodobnou příčinou je zavření objektu ResourceWriter .

Příklady

Následující příklad používá metodu k zápisu AddResourceData dvou celočíselných hodnot do souboru .resources a pak použije ResourceReader objekt k jejich načtení.

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

Poznámky

AddResourceData Pomocí metody přidejte prostředek v binární podobě (tj. jako pole bajtů) do seznamu prostředků, které se mají zapsat. Musíte zadat název prostředku, název typu dat obsažených v prostředku a binární reprezentaci samotných dat. Po přidání každého požadovaného prostředku použijte metodu Generate k zápisu seznamu prostředků do souboru prostředků nebo datového proudu, který byl zadán v konstruktoru ResourceWriter .

typeName je řetězec, který představuje datový typ prostředku. Může to být libovolná z následujících hodnot:

  • Řetězcová reprezentace člena ResourceTypeCode výčtu, který označuje datový typ prostředku. ResourceTypeCode je privátní výčet, který používáResgen.exe k označení, že se k uložení jednoho z 19 běžných datových typů používá speciální binární formát. Patří mezi ně primitivní datové typy rozhraní .NET Framework (Boolean, CharByte, Decimal, Double, Int16, Int32, Int64UInt32UInt16SingleSByte), UInt64a . DateTimeTimeSpanString Kromě toho ResourceTypeCode výčet obsahuje hodnoty uvedené v následující tabulce.

    ResourceTypeCode Hodnotu Description
    ResourceTypeCode.ByteArray Data jsou pole bajtů.
    ResourceTypeCode.Null Data mají nulový odkaz.
    ResourceTypeCode.Stream Data jsou uložená v datovém proudu.
  • Řetězec, který obsahuje plně kvalifikovaný název typu, System.Stringjehož binární data jsou přiřazena argumentu serializedData (například ). Kromě toho pro typy, které nejsou součástí knihovny tříd rozhraní .NET Framework řetězec obsahuje název, verzi, jazykovou verzi a veřejný klíč sestavení, které typ obsahuje. Například následující řetězec označuje, že serializovaná data představují instanci Person typu v Extensions oboru názvů, která se nachází ve verzi 1.0 sestavení s názvem Utility, které nemá žádný veřejný klíč a žádnou určenou jazykovou verzi.

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

Paralelní metoda pro čtení dat prostředků zapsaných pomocí AddResourceData metody je ResourceReader.GetResourceData.

Platí pro

Viz také