2008-12-29 19 views
5

Mam zestaw DLL, w którym znajdują się różne klasy. Każda klasa ma około 50-100 członków i 4-5 funkcji. Jak mogę utworzyć listę wszystkich klas i ich członków za pomocą programu VB.NET?Lista klas w zespole

Potrzebuję pokazać użytkownikowi wykonanie operacji przy użyciu konkretnej klasy.

Odpowiedz

-2

Wiele przykładów znajduje się w Internecie. Oto one (jednak w C#).

+0

-1 za nie w tym żadnego wyjaśnienia poza linkami. –

16

Zakładając, że masz swoją montaż załadowany do thisAsm (w tym ex Używam zespołu wykonującego)

Dzięki temu uzyskasz wszystkie nie abstrakcyjne klasy:

Assembly thisAsm = Assembly.GetExecutingAssembly(); 
List<Type> types = thisAsm.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList(); 

A to dostaniesz wszystkie klasy ses, który implementuje określony interfejs.

(Np. Jeśli trzeba uzyskać tylko klasy, która implementuje IYourInterface, wtedy)

Assembly thisAsm = Assembly.GetExecutingAssembly(); 
List<Type> types = thisAsm.GetTypes().Where 
      (t => ((typeof(IYourInterface).IsAssignableFrom(t) 
       && t.IsClass && !t.IsAbstract))).ToList(); 

Gdy masz tę listę elementów, można pokazać członkom każdego typu, poprzez wywołanie GetProperties() i GetMethods() na każdym elemencie listy typów.

+1

Zapytał "przy użyciu programu VB" – TheSoftwareJedi

+1

Nadal powinno być dość proste przekształcenie C# na VB. –

+0

+2 za podanie faktycznej odpowiedzi z faktycznym kodem. -1 za nie przetłumaczenie go na VB.NET. –

1

można dostać wszelkiego rodzaju, która dziedziczy Form w VB.NET:

Dim thisAsm As Assembly = Assembly.GetExecutingAssembly() 
Dim types As List(Of Type) = thisAsm.GetTypes().Where(Function(t) t.BaseType = GetType(Form)).ToList() 
+1

ahh finaly w vb !!! –

0

Tutaj jest wersja vb.net na podstawie odpowiedzi @amazedsaint: