我可以使用动态类型构建Func <>吗? 我的意思是有什么方法可以构建如下所示的func:
Func<typeof(myclass),bool> f=..........
或
Type myType;
Func<myType,bool> f=............
在我的项目中,我需要基于以下类构建表达式:
class Variable{
public Type VarType{get;set;}
public string Name{get;set;}
public object Value{get;set;}
}
下面的方法基于value属性构建表达式,如果value为null,则应构建一个lambdeexpression,如果value不为null,则应构建一个constantexpression
Expression ToExpression(Variable variable){
if(variable == null){
// return constantexpression
}else{
string[] strs = variable.Name.split(new char[1] { '.' }, StringSplitOptions.RemoveEmptyEntries);
ParameterExpression parameter = Expression.Parameter(variable.VarType, strs[0])
MemberExpression member = Expression.PropertyOrField(parameter, strs[1]);
ConstantExpression constant = Expression.Constant(someValue);
return Expression.Lambda<Func<variable.VarType, bool>>(Expression.GreaterThan(member, constant), parameter);
}
}
但是现在,Expression.Lambda<Func<variable.VarType, bool>>
似乎是错误的。
所以我的问题有没有办法构建
之类的功能Func<typeof(myclass),bool> f=..........