表达式应为MethodCallExpression调用表达式<;行动>;

本文关键字:表达式 行动 gt lt 调用 MethodCallExpression | 更新日期: 2023-09-27 18:27:27

下面的代码抛出这个异常的原因是什么?"Expression必须是MethodCallExpression。我认为调用Action就是…

     Action startBouncePolling = new Action(async () =>
    {
    });
    BackgroundJob.Enqueue(() => startBouncePolling());

排队签名是Expression<Action> 的一个参数

表达式应为MethodCallExpression调用表达式<;行动>;

当您调用startBouncePolling()时,您不是在调用方法。startBouncePolling不是一个方法,它是一个委托。因此,您实际上是在调用一个委托

因此,lambda表达式() => startBouncePolling()的主体最终是InvocationExpression,而不是MethodCallExpression

如果您使用方法而不是委托,例如:

public async Task StartBouncePolling()
{
}
...
BackgroundJob.Enqueue(() => StartBouncePolling());

则该主体将是CCD_ 7。