表达式树可能不包含使用可选参数的调用或调用
return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId));
其中 edit 有第二个可以为空的参数。
为什么是这样?
尝试使用 Mock.setup 模拟具有多个默认参数的方法时出现相同的消息。我只需要在 lambda 中添加其他参数。
void someMethod(string arg1 = "", string arg2 = "")
mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))
underlying expression tree API 不支持可选参数。
对于 IL 编译的代码,C# 编译器会在编译时插入默认值(硬编码),因为 CLR 不支持在未显式提供参数时调用带有可选参数的方法。
错误:“异常树可能不包含使用选项参数的调用或调用”
为什么:因为您在调用方法时没有提供可选参数。主要是你在使用 IAsyncProxy 服务对象时通过 .net 核心获得这个。
修复:传递所有可选参数值,如果你可以使用默认值。
x.someMethod(default,default)
...。