Implementations of interface through Reflection 反射根据继承的信息查找指定的类
2011-12-15 14:45
232 查看
1 /// <summary>
2 /// Returns all types in the current AppDomain implementing the interface or inheriting the type.
3 /// </summary>
4 public static IEnumerable<Type> TypesImplementingInterface(Type desiredType)
5 {
6 return AppDomain
7 .CurrentDomain
8 .GetAssemblies()
9 .SelectMany(assembly => assembly.GetTypes())
.Where(type => desiredType.IsAssignableFrom(type));
}
public static bool IsRealClass(Type testType)
{
return testType.IsAbstract == false
&& testType.IsGenericTypeDefinition == false
&& testType.IsInterface == false;
}
2 /// Returns all types in the current AppDomain implementing the interface or inheriting the type.
3 /// </summary>
4 public static IEnumerable<Type> TypesImplementingInterface(Type desiredType)
5 {
6 return AppDomain
7 .CurrentDomain
8 .GetAssemblies()
9 .SelectMany(assembly => assembly.GetTypes())
.Where(type => desiredType.IsAssignableFrom(type));
}
public static bool IsRealClass(Type testType)
{
return testType.IsAbstract == false
&& testType.IsGenericTypeDefinition == false
&& testType.IsInterface == false;
}
相关文章推荐
- 根据参数指定的列名和值查询员工信息(使用动态sql语句)
- 实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定
- 无core文件根据系统日志查找 程序core信息
- Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】
- QObject提供了QMetaObject元类信息(相当于RTTI和反射),信号与连接,父子关系,调试信息,属性,事件,继承关系,窗口类型,线程属性,时间器,对象名称,国际化
- delphi,根据access violation的出错信息查找源代码出错位置
- sql server 获得指定表结构详细信息 可根据表生成文本框等应用
- 根据友盟错误信信息反编译 通过崩溃trace来查找问题原因
- 动态加载外部程序集并用反射获取指定类型的信息
- 根据并发请求id查找相应trace信息
- find:根据指定条件查找文件
- 查找数组当中指定的信息([示例]NSPredicate基础-查询数组中符合条件的子集)
- 如何根据Correlation ID来查找具体的错误信息
- 大文件上传代码,根据下拉列表框选中的市县镇名保存文件到指定目录下,并将文件相关信息写进数据库
- 如何根据指定路径查找文件发布
- sql 根据 分数 获取指定名次信息
- Android根据包名取得指定程序包的信息(名称、图标……)
- Python实现函数,在Sqlite中根据分数段查找指定的名字
- Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】