Как получить список всех потомков класса - C#
Формулировка задачи:
Добрый день. У меня есть некоторый абстрактный класс. ОТ него происходят куча других классов. Подскажите пожалуйста, как программно получить список всех потомков данного класса?
Решение задачи: «Как получить список всех потомков класса»
textual
Листинг программы
using System;
using System.Reflection;
namespace DerivedTypes
{
public abstract class AbstractBaseClass
{
}
public class DerivedType1 : AbstractBaseClass
{
}
public class DerivedType2 : AbstractBaseClass
{
}
class MainClass : AbstractBaseClass
{
public static void Main (string[] args)
{
Type abstractType = typeof(AbstractBaseClass);
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies ();
for (int i = 0; i < assemblies.Length; i++)
{
Type[] types = assemblies [i].GetTypes ();
for (int j = 0; j < types.Length; j++)
{
if (types [j].IsSubclassOf (abstractType))
{
Console.WriteLine (types [j].FullName);
}
}
}
}
}
}