反射:将PropertyInfo强制转换为List <obj>

问题描述

| 就像标题所说的那样,然后我试图将ѭ0强制转换为其\“原始\”类型,在我的情况下为
List<obj>
。 我尝试了下面的代码,但是没有运气:
(List<obj>)pInfo.GetValue(pInfo,null)
(List<obj>)pInfo.GetValue(typeof<obj>,null)
它只是抛出一个异常:   未处理TargetException:对象   与目标类型不匹配。 我确定我可以忽略一些非常简单的内容,但是我不知道该怎么办。     

解决方法

        第一个参数是目标对象:
var list = (List<object>)prop.GetValue(obj,null);
不过,就我个人而言,我可能会在这里使用非通用API。泛型和反射很少能很好地融合在一起:
var list = (IList)prop.GetValue(obj,null);
    ,        这个:
(List<obj>)pInfo.GetValue(pInfo,null)
是错误的,GetValue的第一个参数应该是您正在读取其属性的对象,而不是PropertyInfo本身。     ,        您需要传入要获取其值而不是类型的对象。这样的事情。
List<obj> object ...

(List<obj>) pInfo.GetValue( object,null );