Did you ever wonder how AutoEventWireup="true" works in ASP.NET Pages? The page class basically hooks different generic event handler methods to the page life-cycle. Such as Page_Load Method get’s called if present. OK!! It’s called using reflection.
public partial class_Default: System.Web.UI.Page { protected voidPage_Load(objectsender, EventArgs e) {
} }
You can use a delegate or MethodInfo object to invoke method with a known signature. Here is a quick test that shows how do you do such in your code
Out test :
using System; namespace ConsoleApplication1 { class Program { delegate string TestMessageHandler(string s); static void Main(string[] args) { Delegate dl = Delegate.CreateDelegate( typeof(TestMessageHandler), typeof(Program), "SayHi"); Console.WriteLine(dl.DynamicInvoke("Bill")); Console.ReadLine(); } public static string SayHi(string name) { return "Welcome " + name; } } }
Even you can make this more strongly typed by casting the resulting Delegate object of Delegate.CreateDelegate to the target delegate (TestMessageHandler)
Have fun..