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!

以及将这些类返回到列表或数组中。

System.Reflection=>;查找自定义类

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();