語言

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[]

一個包含新增資料二進位表示的位元組陣列。

例外狀況

name, , typeName或 serializedData 是 null。

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框架原始資料型態(Boolean、Byte、Char、Decimal、Double、Int16、Int32、Int64、Single、SByte、UInt16、UInt32、UInt64),以及 String、DateTime 和 TimeSpan。 此外,列 ResourceTypeCode 舉還包含下表所示的數值。

    ResourceTypeCode 數值 Description
    ResourceTypeCode.ByteArray 資料是一個位元組陣列。
    ResourceTypeCode.Null 資料為空參考。
    ResourceTypeCode.Stream 資料會儲存在串流中。
  • 包含被指派給 serializedData 參數的二進位資料型別的完全限定名稱的字串(例如, System.String)。 此外,對於不屬於 .NET Framework 類別函式庫的型別,字串會包含包含該型別的組合語言名稱、版本、文化及公鑰。 例如,以下字串表示序列化資料代表命名空間中Person型Extensions別的實例,該類型出現在名為 Utility 的組合語言版本 1.0 中,該組合語言無公開金鑰與指定文化。

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

用該 AddResourceData 方法撰寫的平行資源資料方法是 ResourceReader.GetResourceData。

適用於

另請參閱