質問

オブジェクトのメソッドを呼び出す必要がありますが、実行時までメソッド名がわかりません。

利用可能なテクニックにはどのようなものがありますか?

(例えば。GetMethod().Invoke()、デリゲート、C# 4.0 動的)

ありがとう!

役に立ちましたか?

解決

C# 4.0 dynamic 機能はこれを行うための最も簡単な方法です。とても本当の意味で、 dynamic Reflection の「単なるラッパー」です。それはとても 良い ただし、これがおそらく最良の選択肢です。

他の方法では、ほぼ難易度が上がります。

  • サードパーティリフレクションライブラリを使用します。最近何があるのか​​わからない。
  • 独自の反射コードを書く。
  • Codedomを使用して、呼び出す方法を呼び出すコードを作成します。
  • Codedom生成コードとほぼ同じことを行うILを発します。
  • C#ソースコードを作成してから、呼び出すことができるアセンブリにコンパイルし、目的の方法を呼び出します。

最後の 3 つは、気の弱い人向けではありません。最善の策は使用することです dynamic または、独自のリフレクション コードを作成します。もし持っていたら dynamic 3 年前、私が似たようなコードを書いていたときは、それを使用していたと思います。

他のヒント

反射を使用して、実行時間の名前がわからない関数を呼び出すことができます。これがいくつかのドキュメントです:

http://msdn.microsoft.com/en-us/library/f7ykdhsy%28vs.80%29.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top