正如标题所示,那么我正在尝试将PropertyInfo
投射到其“原始”类型,在我的情况下为List<obj>
。
我没试过下面的代码:
(List<obj>)pInfo.GetValue(pInfo, null)
(List<obj>)pInfo.GetValue(typeof<obj>, null)
它只是让我异常:
TargetException未处理:对象 与目标类型不匹配。
我确信我忽略了一些非常简单的事情,但我无法弄清楚是什么。
答案 0 :(得分:9)
第一个参数是目标对象:
var list = (List<object>)prop.GetValue(obj,null);
但就个人而言,我可能想在这里使用非通用API;泛型和反思很少混合得很好:
var list = (IList)prop.GetValue(obj,null);
答案 1 :(得分:3)
此:
(List<obj>)pInfo.GetValue(pInfo, null)
是错误的,GetValue的第一个参数应该是你正在读取属性的对象,而不是PropertyInfo本身。
答案 2 :(得分:0)
您需要传入要获取值的对象而不是类型。这样的事情。
List<obj> object ...
(List<obj>) pInfo.GetValue( object, null );