2013-06-24 76 views
1

我想了解反射。我正在嘗試使用反射來從對象中獲取屬性。我第一次使用C# - 反射 - 基本屬性

var propertiesForManuallyCreated = typeof(T).GetProperties(); 

但後來意識到它沒有得到基礎屬性。我試過

var propertiesForManuallyCreatedBase = typeof(T).BaseType.GetProperties(); 

但這並沒有讓我的基本屬性。我如何獲得基礎屬性?下面是我在說基地時所說的內容。

Local Image

回答

6

您需要使用Type.GetProperties(BindingFlags)超載與作爲參數的BindingFlags.FlattenHierarchy值。

var propertiesForManuallyCreated = 
    typeof(T).GetProperties(BindingFlags.FlattenHierarchy); 

每MSDN:

FlattenHierarchy

指定公共和保護的靜態成員最多的層次應返回。不會返回繼承類中的私有靜態成員。靜態成員包括字段,方法,事件和屬性。嵌套類型不返回。