将反射特性链接到变量

本文关键字:变量 链接 反射 | 更新日期: 2023-09-27 17:57:29

是否可以将反射属性链接到变量?只是为了更好的代码。

var xxx = results.Where(r => r.GetType().GetProperty(levelName).GetValue(r, null) == node.Name)

有可能转换成那样的东西吗?

var myReflectedProp = r.GetType().GetProperty(levelName).GetValue(r, null);
var myReflectedProp2 = r.GetType().GetProperty(levelName2).GetValue(r, null);
var xxx = results.Where(r => myReflectedProp && r => myReflectedProp2)

干杯

将反射特性链接到变量

是的,如果您只是手动创建表达式树,这是可能的。

var myReflectedPropParameter = Expression.Parameter(typeof(YourType));
var myReflectedProp = Expression.Lambda<Func<YourType, bool>>
    (Expression.MakeMemberAccess(myReflectedPropParameter, typeof(YourType).GetProperty(levelName)), myReflectedPropParameter);
var xxx = results.Where(myReflectedProp);

当然,您需要向System.Linq.Expressions添加一个using语句。