在这种情况下,我有两种类型-类型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:“对象与目标类型不匹配。”
我在这里误解了吗?
答案 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);