문제

다양한 클래스가있는 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()

많은 예가 웹에 있습니다. 여기에 있습니다 하나 (안에 씨# 그렇지만).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top