Получить имя параметра выражения - PullRequest
3 голосов
/ 09 сентября 2010

Мне нужно получить имя параметра выражения.То, что я хочу сделать, похоже на то, что FluentNhibernate делает с отображением столбцов:

Карта (x => x.Name)

Из этого мне нужно «Имя».

Как мне это сделать?

Я могу получить x, выполнив это:

Expression<Func<User, object>> exp = x => x.Id;
exp.Parameters[0].Name;

Но я не могу получить "Имя".Обратите внимание, что у меня нет ни одного экземпляра T, на который я могу ссылаться.Спасибо

1 Ответ

7 голосов
/ 09 сентября 2010
(expr.Body as MemberExpression).Member.Name

Когда выражение возвращает object, тело будет заключено в выражение Convert.

Должно работать следующее.

((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name
...