2009-07-09 7 views

答えて

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); 
    } 
} 

注意、任意の名前空間を含めるようにFullNameを使用する場合があります。

+0

Nope。宿題ではない。私の201の質問を調べてください。学生ではありません。ちょうどあなたの平均過労/不足のコーダー。 – BuddyJoe

1

Assembly.GetTypesType.BaseTypeMSDNから

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

注意してください。インタフェースはBaseTypeを持たないかもしれません。 "オブジェクト"もありません。 –

+0

@Marc:良いキャッチです。 – jason

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

リファレンス。

+0

+1 - クールな追加情報。私の現在のアプリケーションでサブクラス/スーパークラスの関係をテストすることはありませんが、ありがとうございます。 – BuddyJoe

+0

ああ、私は間違ってあなたの質問を読んでいます。それが助けてくれてうれしい。 –

関連する問題