2012-09-13 33 views

risposta

56

Il underlying expression tree API non supporta gli argomenti facoltativi.

Per il codice compilato da IL il compilatore C# inserisce i valori predefiniti in fase di compilazione (hardcoded), poiché il CLR non supporta i metodi di chiamata con argomenti facoltativi quando gli argomenti non vengono forniti esplicitamente.

+2

Questo in qualche modo include sovraccarichi? Stavo ricevendo questo quando ho fatto un sovraccarico. Qualcosa come il vuoto Blah (stringa a) e vuoto Blah (oggetto a). Quando ho provato a inviare una chiamata alla versione con oggetto, mi ha dato questo errore. – vbullinger

+4

I sovraccarichi sono completamente supportati nel senso che un sovraccarico particolare sarà hardcoded nella struttura. – usr

+0

Messaggio di errore abbastanza criptico, ma questa risposta mostrava il modo in cui, avevo il parametro facoltativo con il valore predefinito sul metodo, stavo cercando di deridere. – vpalmu

14

Aveva lo stesso messaggio quando si tenta di utilizzare Mock.setup per simulare un metodo con più parametri predefiniti. Ho appena dovuto aggiungere i parametri aggiuntivi nel lambda.

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

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