У меня есть функция, которая имеет следующую сигнатуру ...Преобразование дерева выражений в строку исходного кода
public string DoJunk(Expression<Func<bool>> expression)
Я пытаюсь найти способ, чтобы преобразовать параметр «выражение» назад к чему-то, приведённым исходный исходный код (или, по крайней мере, aC# представление исходного кода суса). Так что, если кто-то вызывает функцию, как это ...
DoJunk(() => (i + j) * 9 == Math.Round((double)j/(i - 3), 4))
... Я хотел бы иметь возможность преобразовать выражение этого ...
(i + j) * 9 == Math.Round((double)j/(i - 3), 4)
Кто сделал это?
Каков контекст этого? –
Я экспериментирую с некоторыми идеями для модульной системы тестирования. Моя идея заключается в том, что если вы протестируете против лямбда и тест не пройдет, вы можете фактически показать код, который не прошел. Например, вместо того, чтобы «ожидать: 4 фактических: 5», вы могли бы получить сообщение больше похоже на «expected: user.Age == 4 actual: user.Age == 5» – herbrandson