获取表达式参数名称

发布于 2024-09-18 13:39:54 字数 340 浏览 1 评论 0原文

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

地图(x => x.Name)

由此,我需要“名称”。

我该怎么做?

我可以通过这样做获得x

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

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

I need to get the name of a expression parameter. What i want to do is similar to what FluentNhibernate does with column mapping:

Map(x => x.Name)

From this, i need "Name".

How do I do this?

I can get x by doing this:

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

But im not able to get "Name". Note that I dont have any instance of T i can invoke on.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦初启 2024-09-25 13:39:54
(expr.Body as MemberExpression).Member.Name

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

以下应该有效。

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

As the expression returns object, the body will be wrapped in a Convert expression.

The following should work.

((expr.Body as UnaryExpression).Operand as MemberExpression).Member.Name
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文