Expression.Call 嵌套函数
Expression.Call nested functions
我有一个像这样的嵌套函数:Func<A, Func<B, C>>
。
我正在尝试构建一个表达式树,它能够:
- 调用外层函数
- 调用返回的函数
我似乎 运行 遇到的问题是 Expression.Call
需要提前提供目标和方法信息,但这是未知的(或者我不知道如何获取)直到 func 从第一次调用返回。
一定有办法做到这一点,但到目前为止我在第一次调用后就卡住了。
实际上我自己设法解决了这个问题,这最终成为我知识上的一个空白。
答案是,因为Func<_>
是委托,所以可以使用Expression.Invoke
代替Expression.Call
,而且Expression.Invoke
支持对表达式值进行操作,而不是需要预先提供目标和方法信息。
我有一个像这样的嵌套函数:Func<A, Func<B, C>>
。
我正在尝试构建一个表达式树,它能够:
- 调用外层函数
- 调用返回的函数
我似乎 运行 遇到的问题是 Expression.Call
需要提前提供目标和方法信息,但这是未知的(或者我不知道如何获取)直到 func 从第一次调用返回。
一定有办法做到这一点,但到目前为止我在第一次调用后就卡住了。
实际上我自己设法解决了这个问题,这最终成为我知识上的一个空白。
答案是,因为Func<_>
是委托,所以可以使用Expression.Invoke
代替Expression.Call
,而且Expression.Invoke
支持对表达式值进行操作,而不是需要预先提供目标和方法信息。