我正在使用MethodInfo调用一个重载的方法,但是它抛出了一个TargetParameterCount不匹配的异常,以下是我的代码:
public class Device
{
public bool Send(byte[] d, int l, int t)
{
return this.Send(d, 0, l, t);
}
public bool Send(byte[] d, int l, int t,int t)
{
return true;
}
}
我在另一个类中调用了这些函数。
public class dw
{
public bool BasicFileDownload(Device device)
{
Type devType = device.GetType();
byte [] dbuf = readbuff();
MethodInfo methodSend = deviceType.GetMethods().Where(m => m.Name =="Send").Last();
object invokeSend = methodOpen.Invoke(device, new object[] {dbuf,0,10,100 });
}
}
我现在正试图使用4个参数调用Send方法,但它会抛出错误。
System.Reflection.TargetParameterCountException: 参数计数不匹配。 在 System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 中 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 中 在 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) 中 在 Download.BasicDownload.BasicFileDownload(Device device) in e:\sample\BDw.cs:line 146
GetMethod
,它是第二个参数,指定类型数组)。 - Sinatr