public object Invoke(object target, object[] args) { return ((MethodTarget)target).MethodReturningString( (int)args[0], (DateTime)args[1], (string[])args[2], (Inventor)args[3]); }