Expression.Call嵌套函数

时间:2019-03-29 12:29:40

标签: c# lambda func

我有一个类似的嵌套函数:Func<A, Func<B, C>>

我正在尝试构建一个表达式树,该树可以:

  • 调用外部函数
  • 呼叫返回的函子

我似乎遇到的问题是Expression.Call要求提前提供目标和方法信息,直到函数从系统中返回时才知道(或我不知道如何获取)第一次通话。

必须有一种方法可以做到这一点,但到目前为止,我在第一次拨打电话后就陷入了困境。

1 个答案:

答案 0 :(得分:0)

我实际上设法自己解决了这个问题,最终导致我的知识空白。

答案是,因为Func<_>是委托,所以可以使用Expression.Invoke代替Expression.Call,并且Expression.Invoke支持对表达式值进行操作,而不是要求目标以及方法信息。