我想创建提供属性名称、值(作为字符串)和属性类型(作为类型)的 lambda 表达式。
问题Expression.Constant(value1, propertyType);
在于传递给 Foo 的行 value1 是字符串。并且必须解析为“未知”类型
static Expression<Func<T, bool>> LabmdaExpression<T>(string property1, string value1,
Type propertyType)
{
var parameterExpression = Expression.Parameter(typeof(TheObject), "o");
var memberExpression1 = Expression.PropertyOrField(parameterExpression, property1);
//casting?
var valueExpression1 = Expression.Constant(value1, propertyType);
var binaryExpression1 = Expression.GreaterThan(memberExpression1, valueExpression1);
return Expression.Lambda<Func<T, bool>>(binaryExpression1, parameterExpression);
}