public static object Call(object target, string methodName, params object[] parameters)
{
MemberInfo[] found = target.GetType().GetMember(methodName, MemberTypes.Method, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
foreach (MethodInfo method in found)
{
if (CheckParameterTypes(method, parameters))
{
return method.Invoke(target, parameters);
}
}
throw new ApplicationException(string.Format("No appropriate overload for the method {0} was found!", methodName));
}