2009-07-09 5 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

아니요. 숙제가 아닙니다. 201 번 질문을 조사하십시오. 학생이 아닙니다. 너의 평범한 작업자/언더 페이 코더. – BuddyJoe

1

Assembly.GetTypesType.BaseType : MSDN에서

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

@ 마르크 : 좋은 캐치. – jason

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

참조.

+0

+1 - 멋진 추가 정보. 현재 응용 프로그램에서 서브 클래스/수퍼 클래스 관계를 테스트하지 않지만 감사합니다. – BuddyJoe

+0

오, 나는 당신의 질문을 잘못 읽었습니다. 기쁜 데 도움이되었습니다. –