Beispiel #1
0
        /// <summary>Determines whether this instance contains the object.</summary>
        /// <param name="constant">The constant.</param>
        /// <param name="memberExpression">The member expression.</param>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentException">Type of argument is not valid to method. &gt; {nameof(Contains)}</exception>
        /// <exception cref="InvalidOperationException">Error to get method contains. &gt; {nameof(Contains)}</exception>
        public Expression Contains(
            ConstantExpression constant,
            MemberExpression memberExpression,
            object value)
        {
            ThrowErrorIf.IsTypeNotEquals <string>(value);

            var method = typeof(string).
                         GetMethod(LambdaMethod.Contains.ToString(), new[] { typeof(string) });

            var result = Expression.
                         Call(memberExpression,
                              method ?? throw new InvalidOperationException($"Error to get method Contains > {nameof(Contains)}"),
                              constant);

            return(result);
        }