我們假設有一個具有虛擬屬性的類(我們稱之爲'P')。它在派生類中被覆蓋。現在我想用這樣的東西: obj.GetType().GetProperty("P")
獲取有關重寫屬性的信息。由於有兩個「P」屬性(基本和覆蓋),這種搜索是非常模糊的。所以我輸入:obj.GetType().GetProperty("P", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance)
C#中的派生類反射
它只返回覆蓋「P」,但如果我不能在編譯時猜測是否有重寫?後者的調用將返回null。如果繼承層次更大,則情況更加複雜。
換句話說,我想獲得'最高'覆蓋可用,否則 - 基本屬性。達到目標的最簡潔的方法是什麼?目前我只知道一個是通過所有屬性並檢查名稱和聲明類型。
是的,這是我需要做的事情。您提供的示例用法完全是應該如何完成的。謝謝! – pbalaga 2010-05-01 12:04:25