我的一项功能有一点问题。当我对递归部分发表评论时,我的DropDownList中有4个项目。但是,当我取消对递归部分的注释时,会出现错误“参数计数不匹配”。
我看了一些功能,但到目前为止我什么都没找到。该函数采用第一个对象,该对象是格式化的JSON数据。然后,它应该给我类中每个属性的值。
编辑:我按照发布的示例(Parameter Count Mismatch exception when calling PropertyInfo.GetValue中的操作进行操作,但是现在出现错误“ System.Reflection.RuntimeParameterInfo”无法转换为类型“ System.Int32”吗?我还编辑了代码:
protected void wystaw_liste(object obj)
{
if (obj == null) return;
Type type = obj.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
object propValue = new object();
ParameterInfo[] index = property.GetIndexParameters();
if (index.Count() == 0)
{
propValue = property.GetValue(obj, null);
}
else
{
propValue = property.GetValue(obj, index);
}
var elems = propValue as IList;
if (elems != null)
{
foreach (var item in elems)
{
wystaw_liste(item);
}
}
else
{
if (property.PropertyType.Assembly != type.Assembly)
{
if (propValue != null)
{
parametry_list.Add(propValue.ToString());
}
}
}
}
}
您知道如何解决吗?
答案 0 :(得分:0)
某些属性具有索引参数,因此property.GetValue(obj, null)
将为这些属性引发“参数不匹配”错误。
请参见Parameter Count Mismatch exception when calling PropertyInfo.GetValue