TargetParameterCountException 当迭代地从字符串的自反属性中检索值时

TargetParameterCountException when iteratively retrieving value out of reflexive properties of a string

先了解一些上下文:

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

的值

一切正常,直到我将 List<string> 添加到正在检查的 class 中。 添加 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 有两个值

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

有人知道为什么要这样做吗?

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

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