Из-за незнания с System.Reflection Я хотел бы знать, есть ли способ вернуть классы в проекте, которые наследуются от определенного пользовательского класса.System.Reflection => Поиск пользовательских классов
пользовательского классаПросто класс образец
public class Parent
{
public Parent() { }
}
Наследственные КлассыОпять только образец набор классов
public class ParentA : Parent
{
/*code*/
}
public class Something
{
/*code*/
}
public class SneakyParent : Parent
{
/*code*/
}
System.Reflection код Я ПыталсяThi s в настоящее время пишет в консольном приложении, но в конечном счете, будет выводиться в массив или список
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!
... а также вернуть эти классы в список или массив.
Вы хотите использовать [Type.IsSubclassOf] (https://msdn.microsoft.com/en-us/library/system.type.issubclassof (V = vs.110) .aspx) метод. –
Это решило проблему поиска правильных классов! Большое спасибо Майклу Лю! –