.Net判断类型是否实现了指定接口

.Net的Type有一个IsAssignableFrom方法,该方法可以判断某类型是否实现了指定接口,比如有个接口ILog,我们要判断TextLog是否实现了ILog,可以使用一下方法

1
typeof(ILog).IsAssignableFrom(typeof(TextLog))

常见的用法如想要获取某程序集中所有实现了某个接口的类,比如

1
2
var assembly = Assembly.Load("Test.dll");
var types = assembly.GetTypes().Where(t => typeof(ILog).IsAssignableFrom(t));