2010-07-08 115 views
0

我有許多不同類型的嵌套子類的一大類如下:反射特定屬性類型

class Foo 
{ 
    Decimal DecimalProp {get; set;} 
    Long LongProp {get; set;} 
} 
class Bar 
{ 
    Decimal Decimal Prop {get; set;} 
    Long LongProp {get; set;} 

} etc... 

我想:

class BigFooClass 
{ 
    // Classes 
    Foo InnerFoo {get; set;} 
    Bar InnerBar {get; set;} 
    Oof InnerOof {get; set;} 
    Rab InnerRab {get; set;} 

    // Simple Properties 
    Decimal OuterDecimal {get; set;} 
    Long OuterLong {get; set;} 
{ 

每個內部類的定義如下以獲得所有十進制或長整型屬性及其容器類型的列表,如下所示:

BigFooClass.OuterDecimal是十進制類型

BigFooClass.OuterLong是龍

Foo.OuterDecimal的類型是小數

的類型

Foo.OuterLong是龍

Bar.OuterDecimal的類型是小數

Bar.OuterLong的類型是類型的長

我可以到達第一級,但無法找到如何反映PropertyInfo的類型,這可能不是正確的方法。

任何人都可以告訴我該怎麼做嗎?

布賴恩

回答

0

一旦你有了第一級爲PropertyInfo,你需要遞歸下降的另一個級別和類型中檢查的屬性。您可以通過查看PropertyInfo.PropertyType成員來完成此操作,然後使用該類型調用GetProperty/GetProperties並獲取「第二級」屬性。

+0

感謝里德。實際上,對我而言,缺少的一部分信息是使用PropertyType來獲取較低級別類的類型,以便對屬性進行迭代。我一直在試圖獲取PropertyInfo的屬性! – Redeemed1 2010-07-08 19:29:06

+0

@ Redeemed1:很高興幫助。使用反射時,幾乎總是需要從System.Type開始工作。 – 2010-07-08 19:30:44

1

簡單:

PropertyInfo pi = // get your property info here 

pi.PropertyType; // This is what you're looking for. (Type) 
+0

B,非常感謝。 @Reed Copsey在他的回覆中強調了一些信息,所以我會給他答案,但我會爲你回答這個問題。 – Redeemed1 2010-07-08 19:27:16

相關問題