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.