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);
        }