2013-05-10 22 views
3

我需要獲得繼承一些基類,但只有第一代子代的程序集的所有類型。舉例來說,如果我有:如何查找基類的直接後代的類型?

class Base 
{ 

} 

class FirstClass : Base 
{ 

} 

class SecondClass : FirstClass 
{ 

} 

現在

var directOnes = assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(Base))); 

只能FirstClass,而不是SecondClass返回。有沒有辦法找出答案?

回答

5

而不是IsSubclassOf()可以使用Type.BaseType

例如

var directOnes = assembly.GetTypes().Where(t => t.BaseType == (typeof(Base))); 

(FYI:我不認爲有辦法找到接口一個類型直接實現)

+0

輝煌,工程:) – nawfal 2013-05-10 06:11:35

+0

好吧,我不需要在想的接口這一刻,這很好。 – nawfal 2013-05-10 06:12:33