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的!