Une arborescence d'expression ne peut pas contenir un appel ou une invocation utilisant des arguments facultatifs
return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId));
Où edit avait un deuxième argument nullable.
Pourquoi est-ce?
API d'arborescence d'expression sous-jacente ne prend pas en charge les arguments facultatifs.
Pour le code compilé en langage IL, le compilateur C # insère les valeurs par défaut au moment de la compilation (codé en dur), car le CLR ne prend pas en charge les méthodes d'appel avec des arguments facultatifs lorsque les arguments ne sont pas fournis explicitement.
Avait le même message lorsque vous essayez d'utiliser Mock.setup pour simuler une méthode avec plusieurs paramètres par défaut. Il me suffisait d'ajouter les paramètres supplémentaires dans le lambda.
void someMethod(string arg1 = "", string arg2 = "")
mockedObject.Setup(x => x.someMethod(It.IsAny<string>(), It.IsAny<string>()))