Получение значений параметров метода внутри деревьев выражений

Я возился с деревьями выражений, но я немного застрял.

У меня есть это выражение:

Expression<Func<IX, int>> expr = i => i.GetAll(1, b, method());

Где:

int b = 2;

public static int method()
{
    return 3;
}

public interface IX
{
    int GetAll(int a, int b, int c);
}

Теперь я хочу получить имя метода и значения параметров для этого метода. Название метода простое, но значения параметров сложнее. Я знаю, что могу разбирать их сам, но мне нужно будет обрабатывать все случаи ( ConstantExpression , MemberExpression , MethodCallExpression и, возможно, другие, о которых я не знаю) . Поэтому я подумал, есть ли «общий» способ получить их ценности. например, 1, 2, 3.

6
задан abatishchev 28 April 2017 в 03:37
поделиться