表达式树不能包含使用可选参数的调用或调用(An expression tree may not co

2019-06-28 08:28发布

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

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

当编辑了第二个,可为空参数。

为什么是这样?

Answer 1:

该基础表达式树API不支持可选参数。

对于IL-编译代码的C#编译器插入在编译时(硬编码)的默认值,因为CLR不支持任何时候都没有明确提供的参数可选参数调用方法。



Answer 2:

试图用Mock.setup嘲笑与多个默认参数的方法时有相同的消息。 我不得不在lambda添加额外的参数。

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

mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))


文章来源: An expression tree may not contain a call or invocation that uses optional arguments