2009-08-18 56 views
5

在使用反射成功獲取程序集中的特定類型列表之後,我現在想要了解每個程序集的公共屬性。當使用反射來獲取屬性時,如何限制我的搜索到我感興趣的子類?

這些類型中的每一個派生自至少一個基類。

我注意到當我從基類獲取屬性的類型的屬性。

我需要一種方法來過濾掉基類屬性,並只返回我調用的屬性的屬性。

我認爲這將類似於我只從給定的基類型獲取基類型的子類,不包括基類型。

Assembly.GetAssembly(baseType).GetTypes().Where(type => type.IsSubclassOf(baseType)).ToList() 

回答

11

在使用你的電話BindingFlags.DeclaredOnlyType.GetProperties

var properties = Type.GetProperties(BindingFlags.DeclaredOnly | 
            BindingFlags.Public | 
            BindingFlags.Instance); 
+0

@ towps-看到這裏閱讀更多關於它:HTTP:/ /msdn.microsoft.com/en-us/library/kyaxdd3x.aspx – RichardOD 2009-08-18 14:39:12

+0

@Richard:將添加鏈接... – 2009-08-18 14:48:48

+0

謝謝大家!我不知道爲什麼只附加DeclaredOnly標誌沒有給我任何東西。似乎你需要公共和實例嗎? DeclareOnly和Public仍然沒有給我任何東西。 – topwik 2009-08-18 15:46:16

2

使用綁定標誌BindingFlags.DeclaredOnly中的GetProperties方法

相關問題