2009-07-09 5 views

Antwort

2
Assembly assembly = typeof(DataSet).Assembly; // etc 
foreach (Type type in assembly.GetTypes()) 
{ 
    if (type.BaseType == null) 
    { 
     Console.WriteLine(type.Name); 
    } 
    else 
    { 
     Console.WriteLine(type.Name + " : " + type.BaseType.Name); 
    } 
} 

Beachten Sie, dass Generika und verschachtelte Typen flippige Namen haben, jeder möchten Sie vielleicht FullName verwenden, um den Namensraum zu schließen.

+0

Nein. Keine Hausaufgaben. Umfrage meine 201 Fragen - kein Student. Nur Ihr durchschnittlich überarbeiteter/unterbezahlter Coder. – BuddyJoe

1

Assembly.GetTypes und Type.BaseType:

Assembly a; 
foreach(var type in a.GetTypes()) { 
    Console.WriteLine(
     String.Format("{0} : {1}", 
      type.Name, 
      type.BaseType == null ? String.Empty : type.BaseType.Name 
     ); 
} 
+0

Vorsicht! Schnittstellen haben möglicherweise keinen BaseType. noch "Objekt" –

+0

@Marc: Guter Fang. – jason

3
foreach(Type type in assembly.GetTypes()) { 
    var isChild = type.IsSubclassOf(typeof(parentClass)) 
} 

Referenz von MSDN.

+0

+1 - coole zusätzliche Informationen. Unterklasse-/Superklassenbeziehungen werden in meiner aktuellen App nicht getestet, aber danke. – BuddyJoe

+0

Oh, ich habe deine Frage falsch gelesen. Froh, dass es geholfen hat. –

Verwandte Themen