码迷,mamicode.com
首页 > 其他好文 > 详细

枚举所有继承特定接口的类

时间:2016-05-09 12:24:48      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

使用 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;
}
}
}
}
}

 

实例:

class Program
{
static void Main(string[] args)
{
var arr= AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(p => p.GetTypes().Where(t => t.GetInterfaces().Contains(typeof (ISignable))))
.ToArray();
Console.Read();
}
}

public interface ISignable
{

}

public class Md5Sign : ISignable
{

}
public class Base64Sign : ISignable
{

}

枚举所有继承特定接口的类

标签:

原文地址:http://www.cnblogs.com/zhshlimi/p/5473269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!