ResourceWriter.AddResourceData(String, String, Byte[]) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將一個資料單位作為資源加入待寫入的資源清單。
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。