获取继承链

Babybus-u3d技术交流-获取继承链

打算用ICode做整个框架的逻辑,发现有挺多不尽人意的地方,无奈只能从源代码开始着手改造。

1.png

点击添加Action时会动态的添加一些已有的组件,看了源代码发现只要是继承至StateAction的类都会被添加到这边。

2.png

这是这个功能的核心代码。其中获取子类的代码很有意思。

static
IEnumerable<Type> GetSubclassTypes(Type mType){

return
AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => assembly.GetTypes()) .Where(type => type.IsSubclassOf(mType) && type.IsClass && !type.IsAbstract);

}

如果你想查找某个类或者接口向下的继承链用
AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => assembly.GetTypes()).Where(type => mType.IsAssignableFrom(type) && type != mType);

以Graphic为例

3.png

如果你想查找某个类或者接口向上的继承链用
AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => assembly.GetTypes()).Where(type => type.IsAssignableFrom(mType) && type != mType);
以Image为例

4.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,967评论 19 139
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,776评论 0 9
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,643评论 0 4
  • 第六章 她再次出现在你的世界里 文/郭爽sky 一直快到下午第三节课打下课铃的时候,夏初晨才把手里的备课工作做完...
    郭沐辰阅读 440评论 0 2
  • 两耳不闻窗外事,一心只读圣贤书,房门紧闭躲室内,整日只知写写写。 这是我近几个月以来,加入写作班训练营的状态。 从...
    拆书帮一诺阅读 295评论 0 1