迭代检索字符串自反属性中的值时出现TargetParameterCountException



一些上下文优先:

我正在编写一个可重复使用的"null tester"方法,该方法将用于检查对象的任何变量是否具有null值或空值。目标是该方法可以采用CCD_ 1并使用反射来检查每个属性的值。

在我向正在检查的类添加List<string>之前,一切都正常。添加List<string>时引发TargetParameterCountException,其他基元类型没有。我唯一一次设法重现这个错误是直接传递一个字符串。

我设法把这个问题归结为代码:

string toCheck = "foo";
var elementProperties = toCheck.GetType().GetProperties();
foreach (PropertyInfo property in elementProperties)
{
var elementValue = property.GetValue(toCheck);
//Check if "toCheck" is null or empty here
}

elementProperties有两个值

  • Int32 Length
  • Char Chars[Int32]

我的理解是,第一个表示字符串的长度,第二个表示字符串内容。但是,当代码尝试"GetValue()"第二个属性时,它会引发一个TargetParameterCountException

有人知道它为什么会这么做吗?

因为我试图访问一个char数组,所以我需要指定要检索的char的索引。使用:

property.GetValue(toCheck, new object[] {index})

相关内容

  • 没有找到相关文章

最新更新