微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何提取传递给Expression>的属性名称和值?

我们假设我有一个这样的方法
public static List<T> Get<T>(this SomeObject<T>,Expressions<Func<T,bool>> e){

//get the property name and value they want to check is true / false
...

}

TheObject().Get(x => x.PropertyName == "SomeValue");

当我将其传递给Get扩展方法时,如何获得“PropertyName”和“SomeValue”?

解决方法

我想这就是你所追求的
BinaryExpression expression = ((BinaryExpression)e.Body);
string name = ((MemberExpression)expression.Left).Member.Name;
Expression value = expression.Right;


Console.WriteLine(name);
Console.WriteLine(value);

输出

PropertyName
SomeValue

错误检查留给读者练习……

原文地址:https://www.jb51.cc/csharp/100198.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐