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
, typeName
nebo 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ě tohoResourceTypeCode
výčet obsahuje hodnoty uvedené v následující tabulce.ResourceTypeCode
HodnotuDescription 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.String
jehož 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í instanciPerson
typu vExtensions
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.