我正在
参数计数不匹配
错误。它出现在if
子句中。我的代码:
private Dictionary<string,string> ObjectToDict(Dictionary<string, string> dict, object obj)
{
var properties = obj.GetType().GetProperties();
foreach (var property in properties)
{
if (property.GetValue(obj, null) != null)
dict["{{" + property.Name + "}}"] = property.GetValue(obj, null).ToString();
}
return dict;
}
这很奇怪,因为当我将property
值添加到字典时,它可以正常工作,但是当我测试它是否null
时,它是否正常if
条款。
我发现的所有问题都是在函数调用中输入的参数数量不正确,但AFAIK在我的两次调用之间没有什么不同。
答案 0 :(得分:35)
我很确定这是因为您的对象类型有indexed property,并且您将null传递给 GetValue 调用的index参数。
删除索引属性或从属性变量中筛选出索引属性,例如:
var properties = obj.GetType().GetProperties()
.Where(p => p.GetIndexParameters().Length == 0);