Babybus-u3d技术交流-获取继承链
打算用ICode做整个框架的逻辑,发现有挺多不尽人意的地方,无奈只能从源代码开始着手改造。
点击添加Action时会动态的添加一些已有的组件,看了源代码发现只要是继承至StateAction的类都会被添加到这边。
这是这个功能的核心代码。其中获取子类的代码很有意思。
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为例
如果你想查找某个类或者接口向上的继承链用
AppDomain.CurrentDomain.GetAssemblies().SelectMany(assembly => assembly.GetTypes()).Where(type => type.IsAssignableFrom(mType) && type != mType);
以Image为例