今天做项目的时候遇到了个问题,反射获取对象的属性值的时候报了一个错误,提示:“参数计数不匹配”。看到错误提示时一脸懵逼,看着字面意思是提示我参数数量不对,可是一般调用方法的时候参数不正确就生成不通过啊。后来经过一系列百度,找到原因,原来是因为这个类里面有索引器,所以多出来一个叫Item的属性,这个属性不可以用GetValue(object)取值。
。
。
。
所以正确避免该异常的方法是
var properties = type.GetProperties();
foreach (var item in properties)
{
//如果该属性是索引 跳过本次循环
if (item.GetIndexParameters().Length > 0 )
{
continue;
}
}