获取表达式参数名称

ale*_*exn 3 c# expression func

我需要获取表达式参数的名称.我想要做的是类似于FluentNhibernate对列映射的作用:

地图(x => x.Name)

由此,我需要"名字".

我该怎么做呢?

我可以x这样做:

Expression<Func<User, object>> exp = x => x.Id;
exp.Parameters[0].Name;
Run Code Online (Sandbox Code Playgroud)

但我无法得到"名字".请注意,我没有任何可以调用的T实例.谢谢

lep*_*pie 7

(expr.Body as MemberExpression).Member.Name
Run Code Online (Sandbox Code Playgroud)

当表达式返回时object,正文将被包装在Convert表达式中.

以下应该有效.

((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name
Run Code Online (Sandbox Code Playgroud)