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

前端之家收集整理的这篇文章主要介绍了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

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

猜你在找的C#相关文章