.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);
}
}
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。