Дерево выражений может не содержать вызова или вызова, использующего необязательные аргументы
дерево выражений может не содержать вызова или вызова, который использует необязательные аргументы
return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId));
где edit имел второй, нулевой аргумент.
почему это?
2 ответа:
The базовый API дерева выражений не поддерживает необязательные аргументы.
для Il-скомпилированного кода компилятор C# вставляет значения по умолчанию во время компиляции (жестко закодированные), поскольку среда CLR не поддерживает вызов методов с необязательными аргументами, если аргументы не указаны явно.
было то же самое сообщение при попытке использовать макет.настройка для макета метода с несколькими параметрами по умолчанию. Мне просто нужно было добавить дополнительные параметры в лямбду.
void someMethod(string arg1 = "", string arg2 = "") mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()