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
1. | MethodInfo.GetCustomAttributes | ||
2. | MethodInfo.Invoke | ||
3. | MethodInfo.Name |