首页 新闻 会员 周边

怎么通过反射获取所有继承了某一接口的类

1
悬赏园豆:20 [待解决问题]

请问一下我的怎么通过反射获取系统中所有继承了(如ISecurity)接口的类呢?

zhou_3355的主页 zhou_3355 | 初学一级 | 园豆:140
提问于:2011-06-29 10:01
< >
分享
所有回答(2)
-6

在vs中右击这个接口,选择“查找所有引用”

慧☆星 | 园豆:5640 (大侠五级) | 2011-06-29 16:20

@虔城墨客: 为何要骂人。。。不对可以指出,骂人真的没必要

支持(1) 反对(1) WmW | 园豆:424 (菜鸟二级) | 2016-11-26 11:19
7

使用 Linq:

var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(a
=> a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(ISecurity))))
.ToArray();

不使用 Linq:

public static IEnumerable<Type> GetType(Type interfaceType)
{
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
foreach (var type in assembly.GetTypes())
{
foreach (var t in type.GetInterfaces())
{
if (t == interfaceType)
{
yield return type;
break;
}
}
}
}
}
鹤冲天 | 园豆:2379 (老鸟四级) | 2011-06-29 19:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册