ResourceWriter.AddResourceData(String, String, Byte[]) 方法

定義

以資源加入要寫入之資源清單的資料單位。

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

參數

name
String

識別包含已加入資料之資源的名稱。

typeName
String

加入之資料的類型名稱。

serializedData
Byte[]

位元組陣列,其包含已加入資料的二進位表示法。

例外狀況

nametypeNameserializedDatanull

name (或只有大小寫不同的名稱) 已加入這個 ResourceWriter 物件中。

目前的 ResourceWriter 物件尚未初始化。 可能的原因為 ResourceWriter 物件已關閉。

範例

下列範例會使用 方法將 AddResourceData 兩個整數值寫入 .resources 檔案,然後使用 ResourceReader 對象來擷取它們。

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

備註

AddResourceData使用方法,將二進位格式的資源加入 (,也就是要寫入的資源清單) 位元組陣列。 您必須指定資源的名稱、資源中包含的數據類型名稱,以及數據本身的二進位表示。 新增所需的每個資源之後,請使用 Generate 方法,將資源清單寫入建構函式中指定的 ResourceWriter 資源檔或數據流。

typeName 是表示資源數據類型的字串。 可以是下列其中任何一個值:

  • 列舉成員的 ResourceTypeCode 字串表示,表示資源的數據類型。 ResourceTypeCode是Resgen.exe用來指出特殊二進位格式用來儲存 19 種常見數據類型之一的私人列舉。 這些包括 .NET Framework 基本數據類型 (BooleanByteInt64Int16DecimalDoubleCharInt32) DateTimeStringSingleUInt32SByteUInt16UInt64 和 。TimeSpan 此外, ResourceTypeCode 列舉也包含下表中顯示的值。

    ResourceTypeCode 描述
    ResourceTypeCode.ByteArray 數據是位元組陣列。
    ResourceTypeCode.Null 數據是 Null 參考。
    ResourceTypeCode.Stream 數據會儲存在數據流中。
  • 字串,包含類型的完整名稱,其二進位數據會指派給 serializedData 自變數 (例如) System.String 。 此外,對於不屬於 .NET Framework 類別庫的類型,字串會包含包含類型之元件的名稱、版本、文化特性和公鑰。 例如,下列字串表示串行化數據代表命名空間中Extensions型別的Person實例,該實例位於名為Utility的元件1.0版中,該元件沒有公鑰且沒有指定的文化特性。

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

用來讀取以 AddResourceData 方法 ResourceReader.GetResourceData寫入之資源資料的平行方法是 。

適用於

另請參閱