【发布时间】:2021-06-17 11:11:36
【问题描述】:
我有一个扩展方法
public static Expression<Func<T, bool>> ToExpression<T>(string operator, string name, object value)
{
var parameter = Expression.Parameter(typeof(T));
var memberExpression = Expression.Property(parameter, name);
var constantExpression = Expression.Constant(value, typeof(memberExpression.Type));
....
..
.
}
因此 Expression.Constant 会为此类数据引发异常:
我正在使用这个例如类:
public class Person{
public long Number{get;set;}
}
var person1 = new Person{ Number=123}
var person2 = new Person{ Number=9876543210}
person1 有效,但 person2 抛出异常“Argument types does not match”。
我该如何解决这个问题?
【问题讨论】:
-
为什么你的参数
value的类型是string而不是T? -
我更新了帖子
-
你能告诉我们你是如何使用
ToExpression的吗?
标签: c# .net linq expression