Ho una funzione che ha la seguente firma ...Convertire un albero di espressione a stringa di codice sorgente
public string DoJunk(Expression<Func<bool>> expression)
Sto cercando di trovare un modo per convertire il parametro di "espressione" di nuovo a qualcosa di simile al codice sorgente originale (o almeno una rappresentazione di # ac del codice sorgente originale). Quindi, se qualcuno chiama la funzione come questo ...
DoJunk(() => (i + j) * 9 == Math.Round((double)j/(i - 3), 4))
... Mi piacerebbe essere in grado di convertire l'espressione a questo ...
(i + j) * 9 == Math.Round((double)j/(i - 3), 4)
Qualcuno ha fatto questo?
qual è il contesto di questo? –
Sto sperimentando alcune idee per un framework di test unitario. La mia idea è che se si prova contro un lambda e il test fallisce, si può effettivamente mostrare il codice che ha fallito. Ad esempio, invece di ottenere "previsto: 4 effettivo: 5", potresti ricevere un messaggio più simile a "previsto: user.ge == 4 actual: user.ge == 5" – herbrandson