ResourceWriter.AddResourceData(String, String, Byte[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
ResourceTypeCodevýčtu, který označuje datový typ prostředku.ResourceTypeCodeje 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ě tohoResourceTypeCodevýčet obsahuje hodnoty uvedené v následující tabulce.ResourceTypeCodeHodnotuDescription ResourceTypeCode.ByteArrayData jsou pole bajtů. ResourceTypeCode.NullData mají nulový odkaz. ResourceTypeCode.StreamData 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 argumentuserializedData(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í instanciPersontypu vExtensionsoboru 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.