我想找到从基/接口继承的所有类型。有人有一个好的方法来做到这一点吗?有想法吗?
我知道这是一个奇怪的请求,但我仍然在玩它。
使用 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);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)