196

表达式树可能不包含使用可选参数的调用或调用

return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId));

其中 edit 有第二个可以为空的参数。

为什么是这样?

4

3 回答 3

225

尝试使用 Mock.setup 模拟具有多个默认参数的方法时出现相同的消息。我只需要在 lambda 中添加其他参数。

void someMethod(string arg1 = "", string arg2 = "")

mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))
于 2017-10-11T13:13:40.867 回答
130

底层表达式树 API不支持可选参数。

对于 IL 编译的代码,C# 编译器会在编译时插入默认值(硬编码),因为 CLR 不支持在未显式提供参数时调用带有可选参数的方法。

于 2012-09-13T19:55:02.190 回答
1

错误:“异常树可能不包含使用选项参数的调用或调用”

为什么:因为您在调用方法时没有提供可选参数。主要是你在使用 IAsyncProxy 服务对象时通过 .net 核心获得这个。

修复:传递所有可选参数值,如果你可以使用默认值。

于 2021-12-16T13:58:50.353 回答