递归函数中的asp net参数计数不匹配

时间:2019-06-25 20:35:35

标签: c# asp.net

我的一项功能有一点问题。当我对递归部分发表评论时,我的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());
                    }
                }
            }
        }
    }

您知道如何解决吗?

1 个答案:

答案 0 :(得分:0)

某些属性具有索引参数,因此property.GetValue(obj, null)将为这些属性引发“参数不匹配”错误。

请参见Parameter Count Mismatch exception when calling PropertyInfo.GetValue