Reflection
13:42Create a new class library project and add 3 classes below:
public class ClassAge { public string getAge() { return "31"; } } class ClassName { public string getName() { return "Surajit"; } } class ClassAddress { public string getAddress() { return "Kolkata"; } }
Add new console application below:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var myAssamble = Assembly.LoadFile(@"C:\Users\Surajit\Documents\Visual Studio 2015\Projects\ClassLibrary3\ReflectionClass\bin\Debug\ReflectionClass.dll");
foreach (TypeInfo myType in myAssamble.GetTypes())
{
dynamic objMyClass = Activator.CreateInstance(myType);
Type parameterType = objMyClass.GetType();
foreach (MethodInfo methodInfo in parameterType.GetMethods())
{
if (methodInfo.Name == "getAge" || methodInfo.Name == "getName" || methodInfo.Name == "getAddress")
{
Console.WriteLine("Class Name:" + parameterType.Name);
var valMethod = methodInfo.Name;
Console.WriteLine("Method Name:" + valMethod);
var valType = methodInfo.Name.GetType();
Console.WriteLine("Method Type:" + valType);
var valMethodReturn = methodInfo.Invoke(objMyClass, null);
Console.WriteLine("Method Return value:" + valMethodReturn);
Console.WriteLine("------");
}
}
}
Console.ReadLine();
}
}
}
Output
Download
You can download application zip file here - 52 KB

0 comments