2015-02-06 33 views
-1

它是更多鈔票來獲得內我如何可以訪問使用的GetType()的一個子類的屬性。的GetProperties()

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() 

我可以得到屬性速度和車輪,但我無法獲得大小和類型。我如何獲得子類屬性?

回答

1

沒有一舉。

要獲得Type類型,請使用GetType運算符。在下面的示例Car而非實例Car

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

可以使用GetNestedTypes方法得到所有的嵌套Types一個Type

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

因此,您所要做的就是將所有這些屬性添加到一個列表中。

Dim all As New List(Of PropertyInfo) 
+0

感謝您的回答,但如果您不確定對象是汽車物體還是任何其他物體,是否有這樣做的方法? – 2015-02-07 01:05:17

+0

使用[TypeOf](https://msdn.microsoft.com/en-us/library/0ec5kw18.aspx)運算符。 '如果(TypeOf obj是汽車)然後' – 2015-02-07 08:59:20

相關問題