J'ai une fonction qui a la signature suivante ...Convertir un arbre d'expression à chaîne code source
public string DoJunk(Expression<Func<bool>> expression)
J'essaie de trouver un moyen de convertir le paramètre « expression » à quelque chose qui ressemble à la code source original (ou au moins la représentation aC# du code source original). Donc, si quelqu'un appelle la fonction comme ça ...
DoJunk(() => (i + j) * 9 == Math.Round((double)j/(i - 3), 4))
... Je voudrais être en mesure de convertir l'expression à cette ...
(i + j) * 9 == Math.Round((double)j/(i - 3), 4)
Quelqu'un at-il fait cela?
Quel est le contexte? –
J'expérimente avec quelques idées pour un cadre de test unitaire. Mon idée est que si vous testez contre un lambda et que le test échoue, vous pouvez réellement montrer le code qui a échoué. Par exemple, au lieu d'obtenir "attendu: 4 réel: 5", vous pourriez obtenir un message plus comme "attendu: user.Age == 4 réel: user.Age == 5" – herbrandson