当前位置:  开发笔记 > 编程语言 > 正文

如何获得装配中的所有底部类型?

如何解决《如何获得装配中的所有底部类型?》经验,为你挑选了1个好方法。

这是对这个问题的姐妹问题

如果我有一个实例

System.Reflection.Assembly

我有以下型号:

class Person {}
class Student : Person {}
class Freshman : Student {}
class Employee : Person {}
class PersonList : ArrayList {}
class StudentList : PersonList {}

如何枚举程序集的类型以获取对Employee,Freshman和StudentList的引用?

我希望能够枚举任何给定程序集的所有底部类型,如上例所示.

谢谢你的时间 :)



1> Jon Skeet..:

所以你想找到程序集中没有其他类型派生的所有类型,对吧?

(为了便于阅读而重新考虑.)

var allTypes = assembly.GetTypes();
var baseTypes = allTypes.Select(type => type.BaseType);
var bottomTypes = allTypes.Except(baseTypes);

(如果你想要一个.NET 2.0版本,请告诉我.它会有点痛苦.)

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有