private static MethodInfo MakeGenericMethod(MethodInfo genericMethodDefinition, Type[] genericArguments) { ArgumentChecker.Not(!genericMethodDefinition.IsStatic, "genericMethodDefinition"); ArgumentChecker.Not(!genericMethodDefinition.IsGenericMethodDefinition, "genericMethodDefinition"); return(genericMethodDefinition.MakeGenericMethod(genericArguments)); }
public static object Call(MethodInfo genericMethodDefinition, Type genericTypeDefinition, params object[] args) { ArgumentChecker.Not(!genericTypeDefinition.IsGenericTypeDefinition, "genericTypeDefinition"); ArgumentChecker.NotEmpty(args, "args"); var genericType = args[0].GetType(); var genericArguments = GenericArgs.Get(genericTypeDefinition, genericType); return(Call(genericMethodDefinition, genericArguments, args)); }