c# – 获取表达式参数名称

c# – 获取表达式参数名称,第1张

概述我需要获取表达式参数的名称.我想要做的是类似于FluentNhibernate对列映射的作用: Map(x => x.Name) 由此,我需要“名字”. 我该怎么做呢? 我可以通过这样做获得x: Expression<Func<User, object>> exp = x => x.Id;exp.Parameters[0].Name; 但我无法得到“名字”.请注意,我没有任何可以调用的T实例. 我需要获取表达式参数的名称.我想要做的是类似于FluentNhibernate对列映射的作用: @H_403_7@

@H_403_7@

@H_403_7@Map(x => x.name)

@H_403_7@由此,我需要“名字”.

@H_403_7@我该怎么做呢?

@H_403_7@我可以通过这样做获得x:

@H_403_7@

Expression<Func<User,object>> exp = x => x.ID;exp.Parameters[0].name;
@H_403_7@但我无法得到“名字”.请注意,我没有任何可以调用的T实例.
谢谢

解决方法
(expr.Body as MemberExpression).Member.name
@H_403_7@当表达式返回object时,body将被包装在Convert表达式中.

@H_403_7@以下应该有效.

@H_403_7@

((expr.Body as UnaryExpression).Operand as MemberExpression).Member.name
总结

以上是内存溢出为你收集整理的c# – 获取表达式参数名称全部内容,希望文章能够帮你解决c# – 获取表达式参数名称所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1216183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存