2010-12-14 7 views
0

オブジェクトのメソッドを呼び出す必要がありますが、実行時までメソッド名はわかりません。実行時にメソッドを呼び出すさまざまな方法は何ですか?

どのようなテクニックがありますか?

(例えばgetMethod()メソッド。呼び出し()、代表者、ダイナミック#4.0 C)

ありがとう!

+5

あなたはすでに何が必要かを知っています。あなたの質問の範囲を狭めてみて、それについての本を書く必要はありません。 –

+0

@ハンス:残念ながら、私はすべてのオプションを知っていません。この質問を投稿した後、私はILも出すことができることを発見しました。最低限、私はさらなる研究のためのテクニックのリストを期待しています。ありがとう。 –

答えて

2

C#4.0 dynamic機能がこれを行う最も簡単な方法になるだろう。非常に実際の意味では、dynamicはReflectionの周りの「単なるラッパー」です。それは非常にの良いラッパーですが、それはおそらくあなたの最良の選択です。約難しいのレベルを上げることで

他の方法、:

  • サードパーティ製の反射 ライブラリを使用します。最近何があるのか​​わからない
  • 自分自身を書く 反射コード。
  • が呼び出すメソッドを呼び出すコードを作成するコードドーム を使用します。
  • のコードは、 CodeDOM生成コードとほぼ同じものです。
  • を呼び出すことができるアセンブリにコンパイルする ソースコードを作成し、 メソッドを呼び出します。

最後の3つは、心のかすかなものではありません。あなたの最善の策は、dynamicを使うか、独自のReflectionコードを書くことです。 3年前に私が同じようなコードを書いていたときにdynamicがあったなら、私はそれを使ったでしょう。

関連する問題