我收到参数计数不匹配异常:
获取未处理的异常: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));
答案 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
,它来自.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中)。