The class is called ExpressionBuilder
. It has three properties:
private static readonly MethodInfo ContainsMethod = typeof(string).GetMethod("Contains", new[] { typeof(string) });
private static readonly MethodInfo StartsWithMethod = typeof(string).GetMethod("StartsWith", new[] { typeof(string) });
private static readonly MethodInfo EndsWithMethod = typeof(string).GetMethod("EndsWith", new[] { typeof(string) });
One public method GetExpression
that returns the lambda expression, and three private methods:
Expression GetExpression<T>
BinaryExpression GetExpression<T>
ConstantExpression GetConstant
All the methods are explained in details in the examples.