In this article we are going to see how to execute the method present in the dll, with out reference inside the project using Reflection.Reflection is used to load the dll in runtime and expose the methods , properties etc.
first create a Dll using class library project with following code,
This class operation consists of two methods one for addition and another for subtraction, Now a dll is generated Mathematics.dll
Now create a Console application which is used to load the dll at runtime , and execute the subtracion at runtime with out adding reference.
Output :
From this article you can learn how to load dll in runtime.
first create a Dll using class library project with following code,
public class Operation
{
public bool IsReadOnly
{
get { return false; }
}
public int Addition(params int []vals)
{
int temp = 0;
foreach (var eachnum in vals)
{
temp += eachnum;
}
return temp;
}
public int Subtraction(int val1, int val2)
{
try
{
return val1 - val2;
}
catch
{
return -1;
}
}
}
This class operation consists of two methods one for addition and another for subtraction, Now a dll is generated Mathematics.dll
Now create a Console application which is used to load the dll at runtime , and execute the subtracion at runtime with out adding reference.
static void Main(string[] args)
{
Assembly assem_refer = Assembly.LoadFrom(@"D:\Project\StyleManager\Assembly_Reference\Mathematics.dll");
Type typ = assem_refer.GetTypes()[0];
object obj = Activator.CreateInstance(typ);
/* Fetch the method info */
MethodInfo []method = typ.GetMethods();
Console.WriteLine();
Console.WriteLine("Methods are present in Dll exposed using Reflection");
Console.WriteLine();
/* Execute the method */
foreach (MethodInfo meth in method)
{
Console.WriteLine(meth.Name);
}
Console.WriteLine();
//executing a method
MethodInfo sub =method.Where(x=>x.Name=="Subtraction").First();
Console.WriteLine("Method Name :" + sub.Name);
object[] param = new object[] { 5, 3 };
var result = sub.Invoke(obj, param);
Console.WriteLine("Values passed as Parameter {0},{1} Result is {2} ", 5, 3, result);
Console.Read();
}
Output :
From this article you can learn how to load dll in runtime.
This information is really useful to me.
ReplyDeleteDot Net Training in Velachery
A must read post! Good way of describing and pleasure piece of writing. Thanks!
ReplyDelete