黑马程序员技术交流社区

标题: 反射 [打印本页]

作者: 张寅平    时间: 2012-7-23 16:39
标题: 反射
哪位高手能详细的介绍一下反射,最好能举例说明。
作者: 许庭洲    时间: 2012-7-23 17:06
1,反射相当于动态编译,
2,反射就是在程序运行时根据元数据来影响程序执行的逻辑;
3, 举例
using sendkey;
public key kk = new key();
int pid=0,jbid=0;
pid = kk.pid("su_client.exe");
label1.Text +="="+ pid.ToString(); //返回一个指定程序的PID
jbid = kk.findwin(txtname.Text);
pid = kk.pid(jbid);
label2.Text += "=" + pid.ToString();

System.Reflection.Assembly asm = Assembly.LoadFile(@"E:\sendkey.dll");
//获取类型   
Type t = asm.GetType("sendkey.key");
//获取没有参数的构造函数   
System.Reflection.ConstructorInfo conn = t.GetConstructor(new Type[0]);
//调用没有参数的构造函数,Invoke返回object它其是a类   
object a1 = conn.Invoke(new object[0]);
//获取参数类型为int,函数名为func的方法   
MethodInfo method = t.GetMethod("pid", new Type[] { typeof(String) });
//在a1上调用func方法,参数为1   
label1.Text=method.Invoke(a1, new object[] { "QQ.exe" }).ToString();  //返回一个指定程序的PID

作者: 黄涛    时间: 2012-7-23 17:18
反射相当于动态编译,就是在程序运行时根据元数据来影响程序执行的逻辑!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2