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

方法一:

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

 

方法二:

public static IEnumerable<Type> GetTypes(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;
}
}
}
}
}

posted @ 2017-01-17 21:32  littlewrong  阅读(3454)  评论(0)    收藏  举报