A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张寅平 中级黑马   /  2012-7-23 16:39  /  1299 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哪位高手能详细的介绍一下反射,最好能举例说明。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
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

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
反射相当于动态编译,就是在程序运行时根据元数据来影响程序执行的逻辑!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马