12.7 Die Unterklassen eines Typs ermitteln

Problem

Sie haben einen Typ und müssen ermitteln, ob irgendwo in der Assembly von ihm Unterklassen abgeleitet werden.

Lösung

Nutzen Sie die Methode Type.IsSubclassOf, um alle Typen in einer Assembly zu testen. Diese ermittelt, ob ein Typ eine Unterklasse des Typs ist, der als Argument für IsSubClassOf angegeben wurde:

public static Type[] GetSubClasses(string asmPath, Type baseClassType) { Assembly asm = Assembly.LoadFrom(asmPath); return (GetSubClasses(asm, baseClassType)); } public static Type[] GetSubClasses(Assembly asm, Type baseClassType) { List<Type> subClasses = new List<Type>( ); foreach(Type type in asm.GetTypes( )) { if (type.IsSubclassOf(baseClassType)) { subClasses.Add(type); } } return (subClasses.ToArray( ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.