VB6 introduced the
CallByName function which allows you to call a function or subroutine using the subroutine or function name stored as a string value. While this function still works in ASP.NET, you do have another option: you can use the
Invoke method of the
MethodInfo class. This class is a member of the
System.Reflection namespace and it provides access to a method's metadata. Consider the following subroutine:
Public Sub CallMe(ByVal arg1 As String, ByVal _
arg2 As String)
'do something
End Sub
To call this subroutine using the
Invoke method, you can use code similar to the following:
Dim SubName As String = "CallMe"
Dim arguments() As String = _
{"Hello ", "world."}
Dim PageType As Type = Page.GetType()
Dim MyMethod As System.Reflection.MethodInfo = _
PageType.GetMethod(SubName)
MyMethod.Invoke(Page, arguments)
The
GetMethod method obtains information about the function and the
Invoke method calls it using the argument list. This is an excellent tool to help you streamline your codeespecially if you have several different functions, but you won't know which one to call until runtime.
For example, suppose you have a new, edit, and delete routine for updating database records. Instead of using an Parthasarathy Mandayam