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 使用して 2 つの整数値を .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
は、19 個の一般的なデータ型のいずれかを格納するために特別なバイナリ形式が使用されることを示すために、 Resgen.exe によって使用されるプライベート列挙です。 これには、.NET Frameworkプリミティブ データ型 (Boolean、StringInt32UInt16SByteUInt32SingleUInt64DateTimeByteDecimalTimeSpanCharDoubleInt16Int64)、、および が含まれます。 さらに、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。
適用対象
こちらもご覧ください
.NET