.net反射实例

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string basepath = System.AppDomain.CurrentDomain.BaseDirectory.Replace(@"\\",@"\");
Assembly asm = Assembly.LoadFrom(basepath+@"MyLib.dll");
//MyClass m = new MyClass(1, 2);
Type type = asm.GetType(@"MyLib.CT");
Type t = typeof(MyClass);
object[] parm = new object[2];
parm[0]=1;
parm[1]=2;
object obj = Activator.CreateInstance(t, parm);
object obj1 = Activator.CreateInstance(type, parm);
MethodInfo mth = t.GetMethod("sum");
MethodInfo mth1 = type.GetMethod("sum");
int i=(int) mth.Invoke(obj,null);
int j = (int)mth1.Invoke(obj1, null);
Console.WriteLine(j);
Console.ReadKey();
}
}
class MyClass
{
int x;
int y;
public MyClass(int i, int j)
{
x = i;
y = j;
}
public int sum()
{
return x + y;
}
public bool IsBetween(int i)
{
if (x < i && i < y) return true;
else return false;
}
public void Set(int a, int b)
{
x = a;
y = b;
}
public void Set(double a, double b)
{
x = (int)a;
y = (int)b;
}
public void Show()
{
Console.WriteLine("x:{0},y:{1}", x, y);
}
}
}

 

posted @ 2015-04-05 13:10  徐本县  阅读(140)  评论(0编辑  收藏  举报