我需要获取表达式参数的名称。我想要做的是类似于FluentNhibernate对列映射的作用:
地图(x => x.Name)
由此,我需要“姓名”。
我该怎么做?
我可以通过这样做获得x
:
Expression<Func<User, object>> exp = x => x.Id;
exp.Parameters[0].Name;
但我无法获得“名字”。请注意,我没有任何可以调用的T实例。 感谢
答案 0 :(得分:7)
(expr.Body as MemberExpression).Member.Name
当表达式返回object
时,正文将被包装在Convert表达式中。
以下情况应该有效。
((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name