タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

reflectionとprogramingに関するhonamisのブックマーク (1)

  • System.Reflection.Emitについて (1)(HelloWorldみたいなもの) (AssemblyBuilder, ModuleBuilder, TypeBuilder, ILGenerator, MSIL) - いろいろ備忘録日記

    以下、自分のメモ書きです。 System.Reflection.Emit名前空間に存在するクラス達は、実行時に動的に型を生成するための 機能を持ちます。同じように実行時生成としては、CodeDOMもありますが、Emitは型を特定の アセンブリ上に動的に生成する際に、直接ILコードを設定します。なのでコンパイルする手順が 省けます。その代わり、ある程度のILコードに対して知識が必要となります。 でも、実際には細かくしっていなければならない訳では決してなく(実は私もほとんど分かりません(笑)) 以下のようにして、どんなILコードを設定すればいいのかを予め調べておきます。 サンプルソースを記述する。 一旦それをビルド。 生成されたアセンブリをildasm.exeに掛けて、どんなオペコードが吐かれるのかを確認。 同じオペコードを実際に動的生成する型に対して設定する。 上記のようにすると、シンプルな

    System.Reflection.Emitについて (1)(HelloWorldみたいなもの) (AssemblyBuilder, ModuleBuilder, TypeBuilder, ILGenerator, MSIL) - いろいろ備忘録日記
  • 1