ResourceWriter.AddResourceData(String, String, Byte[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje jednostkę danych jako zasób do listy zasobów do zapisania.
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
Nazwa, która identyfikuje zasób zawierający dodane dane.
- typeName
- String
Nazwa typu dodanych danych.
- serializedData
- Byte[]
Tablica bajtów zawierająca binarną reprezentację dodanych danych.
Wyjątki
name
, typeName
lub serializedData
to null
.
name
(lub nazwa, która różni się tylko literą) została już dodana do tego ResourceWriter obiektu.
Bieżący ResourceWriter obiekt nie jest inicjowany. Prawdopodobną przyczyną jest zamknięcie ResourceWriter obiektu.
Przykłady
W poniższym przykładzie AddResourceData użyto metody do zapisania dwóch wartości całkowitych w pliku resources, a następnie użyto ResourceReader obiektu do ich pobrania.
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
Uwagi
AddResourceData Użyj metody , aby dodać zasób w postaci binarnej (czyli jako tablicę bajtów) do listy zasobów do zapisania. Musisz określić nazwę zasobu, nazwę typu danych zawartych w zasobie oraz binarną reprezentację samych danych. Po dodaniu każdego wymaganego zasobu użyj Generate metody , aby zapisać listę zasobów do pliku zasobów lub strumienia określonego w konstruktorze ResourceWriter .
typeName
to ciąg reprezentujący typ danych zasobu. Może to być dowolna z następujących wartości:
Reprezentacja ciągu
ResourceTypeCode
elementu członkowskiego wyliczenia, który wskazuje typ danych zasobu.ResourceTypeCode
to prywatne wyliczenie, które jest używane przez Resgen.exe , aby wskazać, że specjalny format binarny jest używany do przechowywania jednego z 19 typowych typów danych. Należą do nich typy danych pierwotnych .NET Framework (Boolean, Byte, DecimalDoubleInt32CharInt16UInt32UInt16UInt64SingleSByteInt64i .StringDateTimeTimeSpan Ponadto wyliczenieResourceTypeCode
zawiera wartości przedstawione w poniższej tabeli.ResourceTypeCode
WartośćOpis ResourceTypeCode.ByteArray
Dane są tablicą bajtów. ResourceTypeCode.Null
Dane są odwołaniem o wartości null. ResourceTypeCode.Stream
Dane są przechowywane w strumieniu. Ciąg zawierający w pełni kwalifikowaną nazwę typu, którego dane binarne są przypisywane do argumentu
serializedData
(na przykładSystem.String
). Ponadto w przypadku typów, które nie są częścią biblioteki klas .NET Framework, ciąg zawiera nazwę, wersję, kulturę i klucz publiczny zestawu, który zawiera typ. Na przykład następujący ciąg wskazuje, że dane serializowane reprezentują wystąpieniePerson
typu wExtensions
przestrzeni nazw, która znajduje się w wersji 1.0 zestawu o nazwie Narzędzie, które nie ma klucza publicznego i nie określono kultury wyznaczonej.Extensions.Person, Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Metoda równoległa do odczytywania danych zasobów zapisanych za pomocą AddResourceData metody to ResourceReader.GetResourceData.