无法使用反射提取属性值

时间:2018-07-19 00:02:28

标签: c# reflection propertyinfo getvalue

在这种情况下,我有两种类型-类型A和类型B。类型A存在于更高的层中,而不是我在下面实现代码的位置,并且它具有类型B的属性。类型B已定义在我正在工作的层(下层,思考平台)中。我正在尝试访问类型B的属性A。如果我正确理解,通过反射,我应该能够对类型A进行反射并获得该对象(类型B)如下

# test/test.py file
def main():
    print('Hello!')

if __name__ == '__main__':
    main()

GetValue()方法将引发以下异常: System.Reflection.TargetException:“对象与目标类型不匹配。”

我在这里误解了吗?

1 个答案:

答案 0 :(得分:1)

我传递的是“类型”而不是实际实例。以下代码有效:

Type targetTypeA = instanceOfTypeA.GetType();
PropertyInfo someProperty = instanceOfTypeA.GetProperty("PropertyName"); // again just to clarify, the type of this property is 'B' and present in this layer that I'm working in.
object propertyValue = someProperty.GetValue(instanceOfTypeA, null);