naw*_*fal 3 c# reflection inheritance types descendant
我需要获得所有类型的程序集继承一些基类但只有第一个后代.例如,如果我有:
class Base
{
}
class FirstClass : Base
{
}
class SecondClass : FirstClass
{
}
Run Code Online (Sandbox Code Playgroud)
现在
var directOnes = assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(Base)));
Run Code Online (Sandbox Code Playgroud)
应该只返回FirstClass而不是SecondClass.有没有办法找出来?
而不是IsSubclassOf()你可以使用Type.BaseType
例如
var directOnes = assembly.GetTypes().Where(t => t.BaseType == (typeof(Base)));
Run Code Online (Sandbox Code Playgroud)
(仅供参考:我认为没有办法找到类型直接实现的接口.)