어셈블리의 클래스 목록
-
29-08-2019 - |
문제
다양한 클래스가있는 DLL 어셈블리가 있습니다. 각 클래스에는 약 50-100 명의 회원과 4-5 기능이 있습니다. VB.NET 프로그램을 사용하여 모든 클래스 및 해당 회원 목록을 어떻게 만들 수 있습니까?
특정 클래스를 사용하여 작업을 수행하려면 사용자에게 표시해야합니다.
해결책
문서를 참조하십시오 System.Reflection.assembly.getTypes () 그리고 System.type.getMembers ()
-선박
다른 팁
당신의 어셈블리 가이 ASM에로드했다고 가정하면 (이 EX에서는 실행 어셈블리를 사용하고 있음),
이렇게하면 모든 비가 추상 수업을받을 수 있습니다.
Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList();
그리고 이것은 특정 인터페이스를 구현하는 모든 클래스를 얻을 수 있습니다.
(예 : iyourinterface를 구현하는 클래스 만 가져야한다면)
Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where
(t => ((typeof(IYourInterface).IsAssignableFrom(t)
&& t.IsClass && !t.IsAbstract))).ToList();
이 항목 목록이라면 유형 목록의 각 멤버에서 getProperties () 및 getMethods ()를 호출하여 각 유형의 멤버를 표시 할 수 있습니다.
상속하는 모든 유형을 얻을 수 있습니다 형태 vb.net에서 :
Dim thisAsm As Assembly = Assembly.GetExecutingAssembly()
Dim types As List(Of Type) = thisAsm.GetTypes().Where(Function(t) t.BaseType = GetType(Form)).ToList()
다음은 @amazedsaint 답변을 기반으로 한 vb.net 버전입니다.
Dim thisAsm As Assembly = Assembly.GetExecutingAssembly()
Dim types As List(Of Type) = thisAsm
.GetTypes()
.Where(Function(t) t.IsClass AndAlso Not t.IsAbstract).ToList()
Dim thisAsm As Assembly = Assembly.GetExecutingAssembly()
Dim types As List(Of Type) = thisAsm
.GetTypes()
.Where(Function(t) ((GetType(IYourInterface).IsAssignableFrom(t) AndAlso t.IsClass AndAlso Not t.IsAbstract))).ToList()
제휴하지 않습니다 StackOverflow