Get PropertyInfo value
本文关键字:value PropertyInfo Get | 更新日期: 2023-09-27 18:21:55
我试图从PropertyInfo[]
中获取值,但无法使其工作:
foreach (var propertyInfo in foo.GetType().GetProperties())
{
var value = propertyInfo.GetValue(this, null);
}
异常:
Object does not match target type.
这不是应该做的吗?
最初从foo.GetType()
获取PropertyInfo
时,您正试图从this
获取属性。因此,这将更合适:
var value = propertyInfo.GetValue(foo, null);
这是假设你想有效地获得foo.SomeProperty
等
由于this
与foo
的类型不同,所以会出现该异常。
您应该确保您正在获取要尝试从中获取值的同一对象的属性。我从你的代码中猜测,你希望这是循环范围内的foo(事实并非如此),所以你需要将有问题的行更改为:
var value = propertyInfo.GetValue(foo, null);
您正在处理foo
的类型中声明的属性,但尝试从this
读取它们的值,这显然不是同一类型。