Class1.cs
Using System;
Class Class1 {
Public static String method1 ()
{
Return "I am Static method (method1) in class1 ";
}
Public String method2 ()
{
Return "I am a Instance Method (method2) in Class1 ";
}
Public String method3 (String s)
{
Return "Hello" + s;
}
}
Save this file as Class1.cs and Compile c:/> csc/t: library Class1.cs
DynaInvoke. cs
Using System;
Using System. Reflection;
Class DynamicInvoke
{
Public static void Main (String [] args)
{
String path = "Class1.dll"
Assembly a = Assembly. Load (path );
// Invoking a static method
Type mm = a. GetType ("Class1 ");
String I = (String) mm. invokeMember ("method1", BindingFlags. default | BindingFlags. invokeMethod, null, null, new object [] {}); Console. writeLine (I );
// Invoking a non-static method
Object o = Activator. CreateInstance (mm );
I = (String) mm. InvokeMember ("method2", BindingFlags. Default | BindingFlags. InvokeMethod, null, o, new object [] {});
Console. WriteLine (I );
// Invoking a non-static method with parameters
Object [] par = new object [] {"kunal "};
I = (String) mm. InvokeMember ("method3", BindingFlags. Default | BindingFlags. InvokeMethod, null, o, par );
Console. WriteLine (I );
}
}