Aufzählen von Klassen innerhalb einer Assembly
Um programmgesteuert eine Liste der in einer Assembly definierten Klassen zu erhalten, kann man die Funktionen von C# zur Assembly-Reflexion nutzen. Dies ermöglicht eine Introspektion und Untersuchung der Metadaten einer Assembly und ihrer Mitglieder, einschließlich Klassen.
Lösung mit Assembly.GetTypes
Die GetTypes-Methode der Assembly bietet einen unkomplizierten Ansatz zum Abrufen eine Sammlung von Type-Objekten, die alle in einer Assembly definierten Typen darstellen. Um beispielsweise die Klassen in einer bestimmten Assembly aufzuzählen:
Assembly mscorlib = typeof(string).Assembly; foreach (Type type in mscorlib.GetTypes()) { if (type.IsClass) // Filter for classes { Console.WriteLine(type.FullName); } }
Dieser Code durchläuft die in der mscorlib-Assembly definierten Klassen (die Kernfunktionsklassen enthält) und gibt ihre vollständigen Namen aus.
Weitere Überlegungen
Der obige Code kann erweitert werden, um neben Klassen auch andere Typen zu verarbeiten. Um beispielsweise alle Typen (Schnittstellen, Aufzählungen usw.) aufzulisten:
foreach (Type type in mscorlib.GetTypes()) { Console.WriteLine($"{type.FullName} ({type.Namespace})"); }
Reflection ermöglicht eine umfassende Introspektion von Assemblys und ihren Mitgliedern und erleichtert verschiedene Aufgaben wie Objektinstanziierung, Typvalidierung und Codegenerierung .
Das obige ist der detaillierte Inhalt vonWie kann ich alle Klassen in einer C#-Assembly programmgesteuert auflisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!