3

Eric Lippertは SO の記録で次のように述べています

Reflection.Emit は、実際のコンパイラの構築に使用するには弱すぎます。LINQ クエリで動的な呼び出しサイトや式ツリーを生成するなどの小さなおもちゃのコンパイル タスクには最適ですが、コンパイラで直面するような種類の問題については、すぐにその機能を超えてしまいます。Reflection.Emit ではなく、CCI を使用します。

残念ながら、Reflection.Emit で作成された (私が作成したものではありません) 本物のコンパイラがあります。それらの制限に痛々しく突き当たっており、私はエミット コードを CCI に変換したいと考えています。ただし、同等のものはないように思われるものをいくつか見つけています。

たとえば、次の行です。

        _asmBuilder.DefineVersionInfoResource();

        _moduleBuilder.CreateGlobalFunctions(); //setup global .data

そもそも ModuleBuilder に相当するものが見つからないため、同じことを行う方法がわかりません。

Reflection.Emit プロジェクトを CCI に変換する方法について、適切なリファレンスやドキュメントはありますか?

4

0 に答える 0