4

我需要获取所有类型的程序集,这些程序集继承了一些基类,但只有第一个后代。例如,如果我有:

class Base
{

}

class FirstClass : Base
{

}

class SecondClass : FirstClass
{

}

现在

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

应该只返回FirstClass而不是SecondClass。有没有办法找出来?

4

1 回答 1

7

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

例如

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

(仅供参考:我认为没有办法找到类型直接实现的接口。)

于 2013-05-10T06:04:42.823 回答