private object Dispatch(Foo o, string methodName, params object[] args)
 {
     return(Dispatch(o, o.GetType(), methodName, args));
 }