Mega Code Archive

 
Categories / VB.Net by API / System Reflection
 

MethodInfo GetParameters()

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