110,533
社区成员
发帖
与我相关
我的任务
分享
// 参数:
// obj:
// 对其调用方法或构造函数的对象。如果方法是静态的,则忽略此参数。如果构造函数是静态的,则此参数必须为 null 或定义该构造函数的类的实例。
//
// parameters:
// 调用的方法或构造函数的参数列表。这是一个对象数组,这些对象与要调用的方法或构造函数的参数具有相同的数量、顺序和类型。如果没有任何参数,则 parameters
public object Invoke(object obj, object[] parameters)
这个是invoke的定义,若你将你定义的object[] obj 这么调用 mi.Invoke(this,obj)
那么是什么意思呢 这时候你的obj是一个object[] 数据 而且你的obj[0]=datatable 是吧
这样 按照invoke的定义 他其实是把 datatable 当做你要调用方法的参数来传了
可是你方法要传的参数是一个object[] 数组 所以就出现你现在的错误了
因此 你需要这么来调用 : mi.Invoke(this, new object[]{obj});
这时候才是将obj当做你调用方法的参数来传
不知道我说清楚了没有....其实理解了invoke的定义 也就知道错在哪里了