How To Invoke Method Using Reflection
May 02,2010 This Resource is About Reflection,In this Resource We have given a brief Explaination
How To Invoke the Main Method of another Assembly .
Reflection: We can Get the Internal Details of Assembly Without having Access To Source Code.
First You Have To Import Reflection namespace in Your Application.
using System;
using System.Text;
using System.Reflection;
now Use Assembly class To Load the Target Assembly in Your Application.
Write this code in your Main method of the class.(wherever You want in a proper way but i am Write these Code in Main method)
Assembly assembly=Assembly.LoadFrom(string AssemblyPath);
now,second step is get the type information of the target Assembly
Type [] types=assembly.GetTypes();
Find out Type is Class Or Method
foreeach(Type t in types)
{
if(t.IsClass)
{
Console.WriteLine("Class Name Is: "+t.FullName);
Console.WriteLine();
}
MethodInfo [] methodname=t.GetMethods();
foreach(MethodInfo m in methodname)
{
Console.WriteLine("Method Name is :"+m.Name);
Console.WriteLine("Method Return Type: "+m.ReturnType);
if(m.Name=="Main")
{
object obj=Activator.CreateInstance(t) //1
string [] myarray={}; //2
m.Invoke(obj,myarray); //3
Console.WriteLine();
}
}
}
First Line:
In the Above Code I have Bold One Line it Will Create the Instance of the Class.
Second Line:
it Will Create a string Array without having any argument see ({ }).
Third line:
This is very important To Understand This Line Will Invoke the method.
m: Method Reference.
obj:class reference.
and last myarray reperesent that method does not have any argument..
if the Method have Argument Here You Have to Specified,i m not Covering this Tpic in This Article Just See My Another Article on Refelection
Hope this is Helpful for you Guys..