Réponses:
L' API d'arborescence d'expression sous-jacente ne prend pas en charge les arguments facultatifs.
Pour le code compilé par IL, le compilateur C # insère les valeurs par défaut au moment de la compilation (codées en dur), car le CLR ne prend pas non plus en charge les méthodes d'appel avec des arguments facultatifs lorsque les arguments ne sont pas fournis explicitement.
Avait le même message en essayant d'utiliser Mock.setup pour simuler une méthode avec plusieurs paramètres par défaut. Je devais juste 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>()))
It.IsAny<object>
. Fondamentalement, il me manquait un paramètre poursomeMethod()
x.someMethod(default,default)
... peut également être utilisé.