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