经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法
来源:cnblogs  作者:在代码的世界里游走  时间:2018/10/19 9:24:24  对本文有异议

使用反射(Reflect)获取dll文件中的类型并调用方法

需引用:System.Reflection;

1. 使用反射(Reflect)获取dll文件中的类型并调用方法(入门案例)

  1. 1 static void Main(string[] args)
  2. 2 {
  3. 3 //dll文件路径
  4. 4 string path = @"D:\VS2015Project\001\Computer\bin\Debug\computer.dll";
  5. 5
  6. 6 //加载dll文件
  7. 7 Assembly asm = Assembly.LoadFile(path);
  8. 8
  9. 9 //获取类
  10. 10 Type type = asm.GetType("Computer.Computer");
  11. 11
  12. 12 //创建该类型的实例
  13. 13 object obj = Activator.CreateInstance(type);
  14. 14
  15. 15 //获取该类的方法
  16. 16 MethodInfo mf = type.GetMethod("ShowDrives");
  17. 17
  18. 18 //调用方法
  19. 19 mf.Invoke(obj, null);
  20. 20
  21. 21 Console.ReadKey();
  22. 22 }

 

2. 生成类库(computer.dll)的computer.cs文件代码

  1. 1 using System;
  2. 2 using System.Collections.Generic;
  3. 3 using System.IO;
  4. 4 using System.Linq;
  5. 5 using System.Text;
  6. 6
  7. 7
  8. 8 namespace Computer
  9. 9 {
  10. 10 public class Computer
  11. 11 {
  12. 12 private DriveInfo[] drives;
  13. 13 public Computer()
  14. 14 {
  15. 15 this.drives = DriveInfo.GetDrives();
  16. 16 }
  17. 17 public void ShowDrives()
  18. 18 {
  19. 19 Console.WriteLine("该电脑的磁盘驱动器有:\r\n");
  20. 20 foreach (var item in drives)
  21. 21 {
  22. 22 Console.WriteLine(item);
  23. 23 }
  24. 24 }
  25. 25 }
  26. 26 }


3. 反射调用结果:

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号