Aracılığıyla paylaş


ResourceWriter.AddResourceData(String, String, Byte[]) Yöntem

Tanım

Yazılacak kaynaklar listesine kaynak olarak bir veri birimi ekler.

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

Parametreler

name
String

Eklenen verileri içeren kaynağı tanımlayan ad.

typeName
String

Eklenen verilerin tür adı.

serializedData
Byte[]

Eklenen verilerin ikili gösterimini içeren bir bayt dizisi.

Özel durumlar

name, typeNameveya serializedData şeklindedir null.

name (veya yalnızca büyük harfe çevirmeyle değişen bir ad) bu ResourceWriter nesneye zaten eklenmiş.

Geçerli ResourceWriter nesne başlatılmadı. Olası neden, nesnenin ResourceWriter kapalı olmasıdır.

Örnekler

Aşağıdaki örnek AddResourceData , bir .resources dosyasına iki tamsayı değeri yazmak için yöntemini kullanır ve sonra bunları almak için bir ResourceReader nesnesi kullanır.

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

Açıklamalar

AddResourceData Yazılacak kaynaklar listesine ikili biçimde (bayt dizisi olarak) bir kaynak eklemek için yöntemini kullanın. Kaynağın adını, kaynakta bulunan verilerin tür adını ve verilerin ikili gösterimini belirtmeniz gerekir. İstediğiniz her kaynağı ekledikten sonra, kaynak listesini oluşturucuda belirtilen kaynak dosyasına veya akışa ResourceWriter yazmak için yöntemini kullanınGenerate.

typeName kaynağın veri türünü temsil eden bir dizedir. Aşağıdaki değerlerden herhangi biri olabilir:

  • Kaynağın veri türünü gösteren bir ResourceTypeCode numaralandırma üyesinin dize gösterimi. ResourceTypeCode , Resgen.exe tarafından 19 ortak veri türünden birini depolamak için özel bir ikili biçimin kullanıldığını belirtmek için kullanılan özel bir numaralandırmadır. Bunlar .NET Framework temel veri türlerini (, , , , , , , Int32, Int64, SByteSingle, , UInt16, , UInt32, ), UInt64yanı Stringsıra , DateTimeve TimeSpaniçerir. Int16DoubleDecimalCharByteBoolean Ayrıca, ResourceTypeCode numaralandırma aşağıdaki tabloda gösterilen değerleri içerir.

    ResourceTypeCode Değer Description
    ResourceTypeCode.ByteArray Veriler bir bayt dizisidir.
    ResourceTypeCode.Null Veriler null başvurudur.
    ResourceTypeCode.Stream Veriler bir akışta depolanır.
  • bağımsız değişkenine ikili verileri atanmış serializedData türün tam adını içeren bir dize (örneğin, System.String). Ayrıca, .NET Framework sınıf kitaplığının parçası olmayan türler için dize, türü içeren derlemenin adını, sürümünü, kültürünü ve ortak anahtarını içerir. Örneğin, aşağıdaki dize seri hale getirilmiş verilerin ad alanında Extensions türün Person bir örneğini temsil ettiğini gösterir. Bu örnek, ortak anahtar içermeyen ve belirlenmiş kültür içermeyen Utility adlı derlemenin 1.0 sürümünde bulunur.

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

yöntemiyle AddResourceData yazılan kaynak verilerini okumak için paralel bir yöntemdir ResourceReader.GetResourceData.

Şunlara uygulanır

Ayrıca bkz.