我有一个Action,我不知道如何访问调用该方法的实例。行动委托。如何获得调用方法的实例
例:
this.FindInstance(() => this.InstanceOfAClass.Method());
this.FindInstance(() => this.InstanceOfAClass2.Method());
this.FindInstance(() => this.InstanceOfAClass3.Method());
public void FindInstance(Action action)
{
// The action is this.InstanceOfAClass.Method(); and I want to get the "Instance"
// from "action"
}
谢谢
没有,Delegate.Target是其中已经调用操作的类。我想要调用该方法的实例。 – 2011-03-23 18:04:32
@Jean在这种情况下,我不明白你在做什么。请提供一个简短但完整的示例 – 2011-03-23 18:06:52
@Jean:这不适合你的原因是因为你会用一个相当无用的lambda包装方法调用。尝试'FindInstance(InstanceOfAClass.Method)'(没有lambda),它会按你的意愿工作。如果您希望它使用lambda语法,则需要接受“Expression”类型的参数,然后遍历表达式树。 –
2011-03-23 18:12:48