Как я могу получить все унаследованные классы базового класса? class Foo { } class Foo1 : Foo { } class Foo2 : Foo { } Как я могу получить все классы, которые используют Foo в качестве базового класса? Унаследованные классы не нужны в той же сборке. Ответ 1 Это не быстро, но до тех пор, пока Foo является конкретным типом (а не интерфейсом), тогда он должен работать. Foo сам не возвращается этим кодом. AppDomain.CurrentDomain.GetAssemblies() .SelectMany(assembly => assembly.GetTypes()) .Where(type => type.IsSubclassOf(typeof(Foo)));
Ответ 1 Это не быстро, но до тех пор, пока Foo является конкретным типом (а не интерфейсом), тогда он должен работать. Foo сам не возвращается этим кодом. AppDomain.CurrentDomain.GetAssemblies() .SelectMany(assembly => assembly.GetTypes()) .Where(type => type.IsSubclassOf(typeof(Foo)));