Monday, December 1, 2008

Reflection to get classes,methods,properties of dll(vb.net)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim asm As Assembly = Assembly.LoadFrom("yourdllpath.dll")
Dim typ() As Type = asm.GetTypes()
Dim dt As DataTable = New DataTable("Class Information")
Dim className As DataColumn = New DataColumn("Class")
Dim methodName As DataColumn = New DataColumn("MethodName")
dt.Columns.Add(className)
dt.Columns.Add(MethodName)
className.AllowDBNull = True
methodName.AllowDBNull = True
For Each cls As Type In typ
Dim fieldInfo() As FieldInfo = cls.GetFields()
For Each fieldInf As FieldInfo In fieldInfo
DropDownList1.Items.Add(fieldInf.Name)
Next
Dim memInf() As MethodInfo = cls.GetMethods()
For Each mem As MethodInfo In memInf
Dim dr As DataRow = dt.NewRow()
dr(0) = cls.Name.ToString
dr(1) = mem.Name.ToString
dt.Rows.Add(dr)
Dim paramInfo() As ParameterInfo = mem.GetParameters()
For Each param As ParameterInfo In paramInfo
DropDownList1.Items.Add(param.Name)
Next
Next
Dim memInfor() As PropertyInfo = cls.GetProperties()
For Each mem As PropertyInfo In memInfor

DropDownList2.Items.Add(mem.Name)

Next

Next
GridView1.DataSource = dt
GridView1.DataBind()

End Sub
End Class