実行時にメソッドを呼び出すさまざまな方法とは何ですか?
-
10-10-2019 - |
質問
オブジェクトのメソッドを呼び出す必要がありますが、実行時までメソッド名がわかりません。
利用可能なテクニックにはどのようなものがありますか?
(例えば。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
所属していません StackOverflow