我有一个名为 SearchDetails 的对象,其中包含:SearchDetails: { ColName: "StrName" SearchVal" "mega" }我正在使用反射方法制作通用的 lambda 表达式。 public dynamic searchMethod(object SearchDetails) { ParameterExpression Parameter = Expression.Parameter(typeof(SearchDetails), "x"); var searchCol = Expression.Property( Parameter, SearchDetails.GetType().GetProperty("ColName") ); var colVal = Expression.Property( Parameter, SearchDetails.GetType().GetProperty("SearchValue").Name ); Expression contMethod = Expression.Call(searchCol, "Contains", null, colVal); Expression<Func<SearchDetails, bool>> lambda = Expression.Lambda<Func<SearchDetails, bool>>(contMethod, Parameter); return lambda; }问题是我得到的 lambda 表达式如下:{x => x.ColName.Contains(x.SearchValue)}但是,我希望它是这样的:{x => x.StrName.Contains("megabrand")}. 我无法访问属性的值:ColName 和 SearchValue。如何解决这个问题呢?
1 回答
- 1 回答
- 0 关注
- 260 浏览
添加回答
举报
0/150
提交
取消