static Expression BuildExpr <T>(SimpleRule r, ParameterExpression param) { var left = MemberExpression.Property(param, r.Left); var right = MemberExpression.Property(param, r.Right); ExpressionType tBinary; if (ExpressionType.TryParse(r.Operator, out tBinary)) { var rightConstant = Expression.Constant(right); return(Expression.MakeBinary(tBinary, left, rightConstant)); } //else //{ // var method = tProp.GetMethod(r.Operator); // var tParam = method.GetParameters()[0].ParameterType; // var right = Expression.Constant(r.Right); // // use a method call, e.g. 'Contains' // return Expression.Call(left, method, right); //} return(null); }