2008-12-29 17 views
5

Tengo un ensamblado de DLL, en el que hay varias clases. Cada clase tiene alrededor de 50-100 miembros y 4-5 funciones. ¿Cómo puedo crear una lista de todas las clases y sus miembros respectivos usando un programa VB.NET?Lista de clases en un ensamblado

Necesito mostrar al usuario para realizar una operación usando una clase en particular.

Respuesta

-2

Muchos ejemplos están en la web. Aquí está one (en C#).

+0

-1 para no incluir ninguna explicación más allá de los enlaces. –

16

Suponiendo que usted ha cargado su ensamblaje a thisAsm (en este ex estoy usando el conjunto de la ejecución),

Esto le dará todas las clases no abstractas:

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

Y esto le conseguirá a todos clas ses que implementa una interfaz específica.

(Ej. Si usted necesita para obtener sólo las clases que implementan IYourInterface, a continuación)

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

Una vez que haya esta lista de elementos, puede mostrar los miembros de cada tipo, llamando a los GetProperties() y GetMethods() en cada miembro de la lista de tipos.

+1

Le preguntó "usando el programa VB" – TheSoftwareJedi

+1

Todavía debería ser bastante sencillo convertir C# a VB. –

+0

+2 para proporcionar una respuesta real con el código real. -1 por no traducirlo a VB.NET. –

1

Usted puede obtener todo tipo que hereda de Form en 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 en vb !!! –

0

He aquí la versión vb.net basan en respuesta @amazedsaint:

Cuestiones relacionadas