Jon*_*eet 11
使用Assembly.GetTypes()获取所有类型,使用Type.IsAssignableFrom()来检查继承.如果您需要代码,请告诉我 - 以及您是否使用.NET 3.5.(对于LINQ to Objects,很多像这样的反射任务都比较简单.)
编辑:根据要求,这是一个例子 - 它找到mscorlib
实现的一切IEnumerable
.请注意,当基类型是通用的时候,生活会更难一些......
using System;
using System.Collections;
using System.Linq;
using System.Reflection;
class Test
{
static void Main()
{
Assembly assembly = typeof(string).Assembly;
Type target = typeof(IEnumerable);
var types = assembly.GetTypes()
.Where(type => target.IsAssignableFrom(type));
foreach (Type type in types)
{
Console.WriteLine(type.Name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1904 次 |
最近记录: |