【发布时间】:2011-06-19 13:16:21
【问题描述】:
我想创建提供属性名称、值(作为字符串)和属性类型(作为类型)的 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);
}
【问题讨论】:
标签: c# lambda expression-trees constant-expression