【发布时间】:2015-06-18 23:30:11
【问题描述】:
假设我有一个类,它由具有以下属性的其他类组成:
public class classA {
public classAA classAA = new classAA();
public classAB classAB = new classAB();
}
public class classAA {
public string propertyA { get; set; }
}
public class classAB {
public string propertyB { get; set; }
}
我想遍历所有 classA 字段,然后遍历它们的属性并获取它们的值。 我创建了简单的控制台应用程序来测试它。
classA classA = new classA();
classA.classAA.propertyA = "A";
classA.classAB.propertyB = "B";
foreach (FieldInfo memberAField in classA.GetType().GetFields()) {
Console.WriteLine(memberAField.Name + " " + memberAField.MemberType + " " + memberAField.FieldType);
foreach (PropertyInfo classAProperty in memberAField.FieldType.GetProperties()) {
Console.WriteLine("name: " + classAProperty.Name);
Console.WriteLine(" to value: " + classAProperty.GetValue(memberAField));
}
}
现在我不知道将什么传递给 GetValue 函数。我已经尝试了我能想到的一切,但我总是收到错误“对象与目标类型不匹配”。 我认为问题在于 memberAField 是 FieldInfo 对象,但是我怎样才能获得实际的 System object?
编辑:谢谢你们的回答!另外,我认为这不应该被标记为重复,因为我认为这是不同的问题。标题是相似的,是的。
【问题讨论】: