0

一部のクライアント コードが必要とするシグネチャを使用して、オンザフライでメソッドを作成する巧妙なトリックを学びたいと考えています。System.Delegate.BeginInvokeEndInvokeおよびInvokeメソッドと同様です。

私はSystem.Delegateこれらのメソッドのクラス内を探していますが、それらを見つけることができません (ただし、DynamicInvokeレイト バインド メソッドへの呼び出しを動的にディスパッチするため楽しくない を除いて)、明らかにこれらのメソッドは実行時に作成されます。

もし私がそのようなことを実装しなければならないとしたら、私はどうするかについて頭を悩ませています。私は大声で考えています:

1) 新しいアセンブリの構築に興味がないため、Code DOM は機能しません。同じアセンブリ内のクラスに新しいメソッドを追加したいだけです。

2) 古き良きリフレクションは問題なく動作します。MethodInfoクライアント コードが指定するのと同じパラメーターを持つ新しいものを作成することはできますが、この新しいMethodInfoものをメソッドとしてクラスに表示するにはどうすればよいでしょうか?

誰でもこれに光を当てることができますか?

4

1 に答える 1

0

この質問に対する答えは、System.Reflection.Emit.DynamicMethodクラスを使用することです。実際の例を見るには、このリンクにアクセスしてください。

正しい方向に導いてくれた Jon Skeet に感謝します。この質問へのコメントを参照してください。

于 2013-01-21T10:31:19.113 に答える