以下代码引发此异常的原因是什么:“表达式必须是MethodCallExpression。我认为调用Action就是那样。”
Action startBouncePolling = new Action(async () =>
{
});
BackgroundJob.Enqueue(() => startBouncePolling());
入队签名是
Expression<Action>
的一个参数 最佳答案
调用startBouncePolling()
时,不是在调用方法。 startBouncePolling
不是方法,它是委托。因此,您实际上是在调用委托。
因此,lambda表达式() => startBouncePolling()
的主体最终是InvocationExpression
,而不是MethodCallExpression
。
例如,如果使用方法而不是委托,则:
public async Task StartBouncePolling()
{
}
...
BackgroundJob.Enqueue(() => StartBouncePolling());
那么主体将是
MethodCallExpression
。