2024年3月23日发(作者:)
1、新建测试dll及方法,用vs2010新建winform程序,具体代码如下:
[csharp] view plaincopy
1. using System;
2. using c;
3. using entModel;
4. using ;
5. using g;
6. using ;
7. using ;
8. using ;
9.
10. namespace reflect
11. {
12. public partial class Form1 : Form
13. {
14. public Form1()
15. {
16. InitializeComponent();
17. }
18. public string TestReflect()
19. {
20. ("动态加载Dll测试");
21. return "TestReflect返回值";
22. }
23. }
24. }
2、动态加载代码
[csharp] view plaincopy
1. using System;
2. using c;
3. using entModel;
4. using ;
5. using g;
6. using ;
7. using ;
8. using ;
9. using tion;
10.
11. namespace reflectTest
12. {
13. public partial class Form1 : Form
14. {
15. public Form1()
16. {
17. InitializeComponent();
18. }
19. private void button1_Click(object sender, EventArgs e)
20. {
21. //加载dll中的函数
22. //Assembly asm = (strDllPath);//加载当前根目录的
dll
23. Assembly asm = le(@"F:WorkSpaceVS测试代码反射测
试001反射message方法");//根据dll文件实
际路径加载
24. //用类型的命名空间和类获得类型
25. FromClass = e("1");
26. //需要实例化类型,才可以使用,参数可以人为的指定,也可以无参数,静态实例可
以省略
27. Object obj = Instance(FromClass);
28. //通过方法名称获得方法(调试走到下面这一步的时候,就可以弹出“动态加载Dll
测试”这个消息了)
29. MethodInfo method = hod("TestReflect");
30. //获取TestReflect函数的返回值,在这里会获取到"TestReflect返回值",如
果没有返回值,可以省略这一步
31. object o = (obj, new object[] { });
32. }
33. }
34. }
小注:
通过方法名称获得方法中的方法必须是public的!


发布评论