【发布时间】:2020-03-10 17:02:19
【问题描述】:
假设我有一个 A 类的对象。 假设我需要一个在类 A 上调用方法 M 的表达式。 这甚至可行吗?
基本上,我需要以编程方式获取此 lambda a => a.M();
诀窍是,我想通用地执行此操作,即我计划使用反射来确定该方法称为 M 以及它需要什么参数。
我尝试使用 Expression.Lambda(MethodCallExpression method, ParameterExpression params)。
问题在于,当我定义方法调用表达式时,我必须指定一个实例(如果它是静态方法,则将其保留为 null,而事实并非如此)。我不想要这个。我希望将传递给 lambda 的任何参数(在我的示例中为 a)作为实例。
这可能吗?
【问题讨论】:
标签: c#