System.Linq.QueryableTransformer.ReplaceQueryableMethod C# (CSharp) Method

ReplaceQueryableMethod() static private method

static private ReplaceQueryableMethod ( MethodInfo method ) : MethodInfo
method System.Reflection.MethodInfo
return System.Reflection.MethodInfo
		static MethodInfo ReplaceQueryableMethod (MethodInfo method)
		{
			var result = GetMatchingMethod (method, GetTargetDeclaringType (method));

			if (result != null)
				return result;

			throw new InvalidOperationException (
				string.Format (
					"There is no method {0} on type {1} that matches the specified arguments",
					method.Name,
					method.DeclaringType.FullName));
		}

Same methods

QueryableTransformer::ReplaceQueryableMethod ( MethodCallExpression old ) : MethodCallExpression

Usage Example

        private MethodCallExpression ReplaceQueryableMethod(MethodCallExpression old)
        {
            Expression obj = null;

            if (old.Object != null)
            {
                obj = this.Visit(old.Object);
            }
            MethodInfo methodInfo = QueryableTransformer.ReplaceQueryableMethod(old.Method);

            ParameterInfo[] parameters = methodInfo.GetParameters();
            Expression[]    array      = new Expression[old.Arguments.Count];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = QueryableTransformer.UnquoteIfNeeded(this.Visit(old.Arguments[i]), parameters[i].ParameterType);
            }
            return(new MethodCallExpression(obj, methodInfo, array.ToReadOnlyCollection <Expression>()));
        }