Imports System.Reflection
Public Class MainClass
Public Shared Sub Main()
Dim SomeObj = New Demo()
Dim IntegerVar As Integer = 1
Dim DoubleVar As Double = 100.0
Dim StringVar As String = "Hello"
Dim Param As ParameterInfo
Dim MethodObj As System.Reflection.MethodInfo
For Each MethodObj In SomeObj.GetType.GetMethods()
Dim Parameters(MethodObj.GetParameters().Length - 1) As Object
Dim CallMethod As Boolean = True
Dim I As Integer = 0
For Each Param In MethodObj.GetParameters()
If Equals(Param.ParameterType, IntegerVar.GetType()) Then
Parameters(I) = IntegerVar
ElseIf Equals(Param.ParameterType, DoubleVar.GetType()) Then
Parameters(I) = DoubleVar
ElseIf Equals(Param.ParameterType, StringVar.GetType()) Then
Parameters(I) = StringVar
Else
CallMethod = False
End If
I = I + 1
Next
If (CallMethod) Then
If MethodObj.GetParameters().Length = 0 Then
Console.WriteLine("Calling: " & MethodObj.Name)
Console.WriteLine(MethodObj.Invoke(SomeObj, Nothing))
Else
Console.WriteLine("Calling: " & MethodObj.Name)
Console.WriteLine(MethodObj.Invoke(SomeObj, Parameters))
End If
End If
Console.WriteLine()
Next
End Sub
End Class
Class Demo
Public Sub Hello()
End Sub
Public Sub ShowMessage(ByVal Msg As String)
End Sub
Public Function AddTwoIntegers(ByVal A As Integer, ByVal B As Integer) As Integer
End Function
Public Sub ShowThreeDoubles(ByVal A As Double, ByVal B As Double, ByVal C As Double)
End Sub
End Class
|