어셈블리를 반복하는 가장 좋은 방법은 무엇이며 어셈블리 목록의 각 클래스에 대해 "SuperClass"가 무엇입니까? 제네릭 및 중첩 유형 펑키 이름이.NET/C# - 리플렉션 도움말 - 어셈블리의 클래스
답변
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
을 사용할 수 있습니다.
Assembly.GetTypes
및 Type.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
);
}
조심해; 인터페이스에는 BaseType이 없을 수 있습니다. 도 아니다 "개체"도 아니다 –
@ 마르크 : 좋은 캐치. – jason
foreach(Type type in assembly.GetTypes()) {
var isChild = type.IsSubclassOf(typeof(parentClass))
}
참조.
+1 - 멋진 추가 정보. 현재 응용 프로그램에서 서브 클래스/수퍼 클래스 관계를 테스트하지 않지만 감사합니다. – BuddyJoe
오, 나는 당신의 질문을 잘못 읽었습니다. 기쁜 데 도움이되었습니다. –
- 1. 부트 로더 오류 : 어셈블리의 도움말
- 2. 어셈블리의 C++ 클래스 함수
- 3. 리플렉션 : 자동 테스트를위한 클래스 걷기
- 4. 클래스 검색, 리플렉션, jars 및 jnlp
- 5. Java : 정적 중첩 클래스 및 리플렉션 : "$"vs "."
- 6. C# 버디 클래스/메타 데이터 및 리플렉션
- 7. .NET 어셈블리의 클래스 및 메서드 내부화
- 8. 인라인 어셈블리의 C++ 클래스 멤버에 액세스
- 9. C# : 어셈블리의 모든 클래스 목록 표시
- 10. Fluent nhibernate 다른 어셈블리의 automap 서브 클래스
- 11. 다른 어셈블리의 클래스 이름에서 유형 확인
- 12. 동일한 어셈블리의 여러 버전로드
- 13. 도움말 이름 지정 클래스
- 14. PHP OOP 클래스 도움말
- 15. Ping 클래스 SendAsync 도움말
- 16. 스캐너 클래스 도움말
- 17. 클래스 디자인 도움말
- 18. 클래스 메소드 도움말?
- 19. 클래스 상호 작용 도움말
- 20. FindWindowEx 클래스/제목 도움말
- 21. C# 도움말 작업 클래스
- 22. PropertyObject 클래스 도움말
- 23. C# 클래스 정의 도움말
- 24. Python에서 리플렉션
- 25. 클래스 및 파생 클래스 처리 도움말
- 26. C# 및 리플렉션
- 27. 빠른 도움말 리팩토링 Ruby 클래스
- 28. Parcelable 클래스 만들기에 대한 도움말
- 29. 도움말 Tkinter로 파이썬 클래스 생성하기
- 30. 맞춤 iPhone 클래스 만들기 도움말
아니요. 숙제가 아닙니다. 201 번 질문을 조사하십시오. 학생이 아닙니다. 너의 평범한 작업자/언더 페이 코더. – BuddyJoe