2009-04-02 6 views
1

実行時に動的アセンブリ内に動的クラスを作成し、そのクラスのメソッドを必要に応じて定義できるようにしたいと考えています。TypeBuilder.CreateTypeを使用して型を作成した後に型を変更する

Ex。

  1. タイプXを構築
  2. タイプX上のメソッド下駄を定義
  3. タイプXを作成
  4. コール下駄
  5. がタイプXに新しいメソッドGetBを定義するタイプX用
  6. 使用同じタイプビルダー
  7. GetAとGetBの両方を持つタイプXを再作成する

これが不可能な場合は、メソッドの1つを要求してタイプを構築し、それを行う必要があります。その場合、毎回アセンブリを作成する必要があります。

任意のアイデアは、 おかげ

+0

同様のことができますか? stedp 1-3を実行してX型を取得し、次に1,2,6,7を実行してY型を取得します(これはXではありません)。 –

答えて

0

おそらく、あなたはCodeDomとタイプを作成する必要があります。タイプ全体を構築し、コードをコンパイルしてから、新しいアセンブリをロードしてそのタイプを使用することができます。

1

"フル"メソッド(リフレクションで検出可能)を作成することはできませんが、DynamicMethodを使用して新しいILブロックをタイプ(主にスコープなど)に関連付けることができます。しかし、最終的には、4.0でDLRの仕事(そしてIron Pythonなどの言語; C#とVBはの動的メソッドを宣言する言語サポートを追加せず、それらを消費するだけです)です。

関連する問題