在 .NET 3.5 中生成带有反射的子类列表

Kyl*_*ran 3 c# reflection .net-3.5

在运行时,我想指定一个父类,然后程序将生成所有子类(无论几代)的列表。例如,如果我有Entity一个父级 and 和Item:Entityand Actor:Entity,就会有两个字符串,“Actor”和“Item”。

我明白这System.Reflection.TypeInfo正是我正在寻找的。但是,这似乎是 .NET 4.5 独有的,不幸的是我的环境停留在 3.5。

在 .NET 3.5 中是否有其他方法可以做到这一点,还是应该考虑升级?

Tim*_*ter 6

var pType = typeof(Entity);
IEnumerable<string> children = Enumerable.Range(1, iterations)
   .SelectMany(i => Assembly.GetExecutingAssembly().GetTypes()
                    .Where(t => t.IsClass && t != pType
                            && pType.IsAssignableFrom(t))
                    .Select(t => t.Name));
Run Code Online (Sandbox Code Playgroud)

演示