System.Reflection=>;查找自定义类
本文关键字:查找 自定义 gt Reflection System | 更新日期: 2023-09-27 17:59:23
由于不熟悉System.Reflection,我想知道是否有办法在项目中返回从某个自定义类继承的类。
自定义类 只是一个示例类
public class Parent
{
public Parent() { }
}
继承的类再次只是一个类的示例集
public class ParentA : Parent
{
/*code*/
}
public class Something
{
/*code*/
}
public class SneakyParent : Parent
{
/*code*/
}
我尝试过的System.Reflection代码这当前是在控制台应用程序中编写的,但最终将输出到数组或列表
class Program
{
static void Main(string[] args)
{
Assembly assem = typeof(Parent).Assembly;
foreach (var type in assem.GetTypes())
{
Console.WriteLine($"Parent '"{type.Name}'" found!");
}
Console.ReadLine();
}
}
运行代码后,这是我得到的输出:
Parent "Parent" found!
Parent "Program" found!
Parent "ParentA" found!
Parent "Something" found!
Parent "SneakyParent" found!
再尝试几次"嗯……我想知道",我仍然不知道如何返回正确的输入,也不知道怎样返回类。理想情况下,我希望输出是…
Parent "Parent A" found!
Parent "SneakyParent" found!
以及将这些类返回到列表或数组中。
Assembly assem = typeof(Parent).Assembly;
foreach (var type in assem.GetTypes().Where(x => x.IsSubclassOf(typeof(Parent))))
{
Console.WriteLine($"Parent '"{type.Name}'" found!");
}
Console.ReadLine();