说我有以下类模型:
Class1 -> BaseClass
或
Class2 -> BaseClass
Class1具有
的属性public string Property1 { get; set; }
public int Property2 { get; set; }
Class2具有
的属性public double Property1 { get; set; }
public string Property2 { get; set; }
public int Property3 { get; set; }
我想在BaseClass中创建一个方法,它将为已经实例化的子类中的所有属性创建一个哈希。我如何使用反射获取子类的属性?
由于.Net不允许多重继承,我认为假设只有一个子类(或一行子类),我会安全。
答案 0 :(得分:3)
听起来你只是在寻找使用GetType()
,这将给出当前对象的执行时类型:
foreach (var property in this.GetType().GetProperties())
{
var value = property.GetValue(this, null);
// Whatever
}
在Class1
的实例上调用时,即使代码位于Property1
,也应显示Property2
和BaseClass
。