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 identyfikująca 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, lub typeNameserializedData ma wartość null.
name (lub nazwa, która różni się tylko literami) została już dodana do tego ResourceWriter obiektu.
Bieżący ResourceWriter obiekt nie jest inicjowany. Prawdopodobną przyczyną jest ResourceWriter zamknięcie obiektu.
Przykłady
W poniższym przykładzie użyto AddResourceData 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:
Ciąg reprezentujący element
ResourceTypeCodeczłonkowski wyliczenia wskazujący typ danych zasobu.ResourceTypeCodeto prywatne wyliczenie, które jest używane przez Resgen.exe , aby wskazać, że do przechowywania jednego z 19 typowych typów danych jest używany specjalny format binarny. Obejmują one podstawowe typy danych .NET Framework (Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, Single, SByte, UInt16, UInt32, UInt64), a także String, DateTime i TimeSpan. PonadtoResourceTypeCodewyliczenie zawiera wartości pokazane w poniższej tabeli.ResourceTypeCodeWartośćOpis ResourceTypeCode.ByteArrayDane są tablicą bajtów. ResourceTypeCode.NullDane są odwołaniem o wartości null. ResourceTypeCode.StreamDane są przechowywane w strumieniu. Ciąg zawierający w pełni kwalifikowaną nazwę typu, którego dane binarne są przypisane 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 zawierającego typ. Na przykład poniższy ciąg wskazuje, że serializowane dane reprezentują wystąpieniePersontypu wExtensionsprzestrzeni nazw, która znajduje się w wersji 1.0 zestawu o nazwie Utility, który nie ma klucza publicznego i nie ma wyznaczonej kultury.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.