0

代理人がいる

public delegate void Context();

そして、匿名メソッドで実装しましたが、

public Context fakeHttpContext = () =>
        {
                ...
                create fake http context.
        };

私は偽のHttpContextを実行したくありません


    fakeHttpContext.Invoke()

デリゲート名を知って呼び出すことができるのだろうか。リフレクションで好きなものはありますか:


    DelegateInfo info =     typeof(class).GetDelegate("fakeHttpContext");
    info.Invoke();

ありがとう

4

2 に答える 2

4

匿名メソッドを名前で取得しようとするのは少し変だと思いませんか? それ自体が矛盾のようなものです。

その単なる事実は、あなたがしていることはおそらく意味がないというヒントを与えるはずです. デリゲートまたはイベントを実装する標準メソッドを宣言して呼び出すだけです。

于 2009-11-18T08:56:01.553 に答える
2

本当にやりたいことは、fakeHttpContext フィールドを取得することです。クラスタイプの名前が MyObject であると仮定します。

MyObject obj = new MyObject();
Context context = (Context)(typeof(MyObject).GetField("fakeHttpContext").GetValue(obj));
context();

たとえそれが汚れていたとしても、これはあなたが求めたものです...反射はめったに良い考えではありません。

于 2009-11-18T08:52:43.193 に答える