使用反射(Reflect)获取dll文件中的类型并调用方法
需引用:System.Reflection;
1. 使用反射(Reflect)获取dll文件中的类型并调用方法(入门案例)
- 1 static void Main(string[] args)
- 2 {
- 3 //dll文件路径
- 4 string path = @"D:\VS2015Project\001\Computer\bin\Debug\computer.dll";
- 5
- 6 //加载dll文件
- 7 Assembly asm = Assembly.LoadFile(path);
- 8
- 9 //获取类
- 10 Type type = asm.GetType("Computer.Computer");
- 11
- 12 //创建该类型的实例
- 13 object obj = Activator.CreateInstance(type);
- 14
- 15 //获取该类的方法
- 16 MethodInfo mf = type.GetMethod("ShowDrives");
- 17
- 18 //调用方法
- 19 mf.Invoke(obj, null);
- 20
- 21 Console.ReadKey();
- 22 }
2. 生成类库(computer.dll)的computer.cs文件代码
- 1 using System;
- 2 using System.Collections.Generic;
- 3 using System.IO;
- 4 using System.Linq;
- 5 using System.Text;
- 6
- 7
- 8 namespace Computer
- 9 {
- 10 public class Computer
- 11 {
- 12 private DriveInfo[] drives;
- 13 public Computer()
- 14 {
- 15 this.drives = DriveInfo.GetDrives();
- 16 }
- 17 public void ShowDrives()
- 18 {
- 19 Console.WriteLine("该电脑的磁盘驱动器有:\r\n");
- 20 foreach (var item in drives)
- 21 {
- 22 Console.WriteLine(item);
- 23 }
- 24 }
- 25 }
- 26 }
3. 反射调用结果:
