获取未处理的异常:System.Reflection.TargetParameterCountException:参数计数不匹配

时间:2015-05-31 12:00:01

标签: c# .net

我收到参数计数不匹配异常:

  

获取未处理的异常:System.Reflection.TargetParameterCountException:参数计数不匹配。

代码:

String xpath = "//div[contains(@class,'page-bg clearfix search-locality')]/ul[" + i + "]/li"
List<WebElement> allElementswithLetter = Driver.driver.findElements(By.xpath(xpath));

1 个答案:

答案 0 :(得分:6)

问题在于:

string customerObject = (string)method.Invoke(customerInstance, obj);

......和方法:

public string printCustomerDetails(object[] parameters)

MethodInfo.Invoke(...)重载的输入参数(第二个)参数是一个参数数组,而您的printCustomerDetails方法有一个参数,它是一个对象数组object[],所以你需要以这种方式致电Invoke

method.Invoke(customerInstance, new [] { obj });

有关ArrayList的建议已过时

不要使用ArrayList,它来自.NET 1.x天。从.NET 2.0开始,您需要使用System.Collections.Generic命名空间中的通用集合(f.e。List<T>HashSet<T>Queue<T> ...)

如果你需要动态创建数组,我建议你应该使用List<object>而不是过时的ArrayList来获得完整的LINQ和LINQ扩展方法支持,以及列表上的其他改进自.NET 2.0以来更新的通用列表上的类型集合(过去也是如此!现在我们在.NET 4.5中)。