1

文字列を送信してメソッドを動的に呼び出すリフレクションのさまざまな例を見てきました。ほとんどの例は、クラス、メソッド、およびパラメーターを非常に簡単に動的に設定する方法を示しています。私の要件はわずかに異なり、機能させることができません。次の行は、ハードコーディングされたものです。

Mailer.CallBack(parameters).Send();

Mailerクラス、Callbackメソッド、parametersパラメーターですが、一体どうすれば、.send()追加されたものを動的に呼び出すことができますか?

答えは私を逃れるので、誰かが助けてくれることを願っています.

スティーブ。

4

1 に答える 1

2

このようにメソッドを連鎖させるということは、最初のメソッドの結果に対して 2 番目のメソッドを呼び出すということです。言い換えると

Mailer.CallBack(parameters).Send();

と正確に同等でなければなりません

var callbackResult = Mailer.CallBack(parameters);
callbackResult.Send();

したがって、リフレクションを使用して最初の行と同等のことを行うことができ、その後、通常どおり 2 番目の呼び出しを行うことができます。

(別の言い方をすれば、 を呼び出すと、それに追加された をCallBack認識しません。はそのことを実行し、次に戻り、結果に対して呼び出されます。).Send()CallBack.Send()

于 2013-09-23T14:01:08.060 に答える