如何使用GetType()访问子类的属性.GetProperties()

时间:2015-02-06 05:59:46

标签: vb.net

是否可以获得类的所有属性,包括

中的子任务
  Class Car
  Property Speed
    property Wheels(3) as Wheel


  Class Wheel
   Property Size
   Property Type
  End Class
 End Class

如果我使用它:

Dim ArrayOfProperties() As Reflection.PropertyInfo = Car.GetType().GetProperties()

我可以获得属性Speed和Wheels,但我无法获得尺寸和类型。我如何获得子类属性?

1 个答案:

答案 0 :(得分:1)

  

不是一下子。

要获取某个类型的Type,请使用GetType运算符。在以下示例中,Car类型,而不是Car实例

Dim properties As PropertyInfo() = GetType(Car.Wheel).GetProperties()

您可以使用Types方法获取Type的所有嵌套GetNestedTypes

For Each t As Type In GetType(Car).GetNestedTypes()
    Dim properties As PropertyInfo() = t.GetProperties()
Next

所以你要做的就是将所有这些属性添加到一个列表中。

Dim all As New List(Of PropertyInfo)