C# 如何动态调用匿名委托

C# 如何动态调用匿名委托,c#,reflection,delegates,anonymous,C#,Reflection,Delegates,Anonymous,我有一名代表 public delegate void Context(); 我用匿名方法实现了它 public Context fakeHttpContext = () => { ... create fake http context. }; 我不想执行fakeHttpContext fakeHttpContext.Invoke() 我不知道是否可以通过已知的委托名称来调用它。反思中

我有一名代表

public delegate void Context();
我用匿名方法实现了它

public Context fakeHttpContext = () =>
        {
                ...
                create fake http context.
        };
我不想执行fakeHttpContext


    fakeHttpContext.Invoke()
我不知道是否可以通过已知的委托名称来调用它。反思中是否有以下内容:


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

谢谢

您真正想做的是获取字段fakeHttpContext。 假设您的类类型命名为MyObject:

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

这就是你要的,即使是脏的。。。反射很少是个好主意。

您真正想做的是获取字段fakeHttpContext。 假设您的类类型命名为MyObject:

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

这就是你要的,即使是脏的。。。反射很少是个好主意。

您不觉得尝试按名称检索一个匿名方法有点奇怪吗?这本身就是一种矛盾


这仅仅是一个事实就应该给你一个暗示,你所做的可能毫无意义。只需声明一个实现委托或事件的标准方法并调用它。

您不觉得尝试按名称检索一个匿名方法有点奇怪吗?这本身就是一种矛盾


这仅仅是一个事实就应该给你一个暗示,你所做的可能毫无意义。只需声明一个实现委托或事件的标准方法并调用它。

您能否提供使用该方法的时间、地点和原因?您能否提供使用该方法的时间、地点和原因?