4

ILDasm を使用して C# コードをリバース エンジニアリングしたところ、コンパイラがこのSystem.Runtime.CompilerServices.RuntimeHelper.InitializeArrayメソッドを使用して、プリミティブ型の定数値をいくつか含む配列を初期化していることがわかりました。

配列サイズごとに特別な構造をバイト単位で作成し、[StructLayout]属性でマークしているようです。これは非常に簡単です。しかし、実際のデータを含むそのタイプのフィールドがあります。そのようなフィールドを作成し、Reflection.Emit任意のバイトで埋めるにはどうすればよいですか?

4

1 に答える 1

2

そのためにModuleBuilder.DefineInitializedDataを使用していると思います。

于 2013-03-20T15:41:03.020 に答える