4

我需要获取表达式参数的名称。我想做的类似于 FluentNhibernate 对列映射所做的事情:

地图(x => x.Name)

由此,我需要“名称”。

我该怎么做呢?

我可以x这样做:

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

但我无法获得“名称”。请注意,我没有任何可以调用的 T i 实例。谢谢

4

1 回答 1

8
(expr.Body as MemberExpression).Member.Name

当表达式返回object时,主体将被包裹在一个 Convert 表达式中。

以下应该工作。

((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name
于 2010-09-09T12:44:35.770 回答