Esempio n. 1
0
        public static bool ArgumentsMatch(this MethodInfo method,
                                          Type[] typeArguments, object[] arguments)
        {
            if ((!method.IsGenericMethodDefinition && method.IsGenericMethod) &&
                method.ContainsGenericParameters)
            {
                method = method.GetGenericMethodDefinition();
            }

            if (method.IsGenericMethodDefinition)
            {
                if (typeArguments == null || typeArguments.Length == 0)
                {
                    return(false);
                }

                if (method.GetGenericArguments().Length != typeArguments.Length)
                {
                    return(false);
                }

                method = method.MakeGenericMethod(typeArguments);
            }
            else if (typeArguments != null && typeArguments.Length > 0)
            {
                return(false);
            }

            return(method.ArgumentsMatch(arguments));
        }