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


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

    需引用:System.Reflection;

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

     1         static void Main(string[] args)
     2         {
     3             //dll文件路径
     4             string path = @"D:VS2015Project01ComputerinDebugcomputer.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("该电脑的磁盘驱动器有:
    ");
    20             foreach (var item in drives)
    21             {
    22                 Console.WriteLine(item);
    23             }
    24         }
    25     }
    26 }


    3. 反射调用结果:

  • 相关阅读:
    Gamma阶段第三次scrum meeting
    【技术博客】Django+uginx+uwsgi框架的服务器部署
    Gamma阶段第二次scrum meeting
    Gamma阶段第一次scrum meeting
    团队项目贡献分
    Beta阶段发布说明
    Beta阶段测试报告
    【Beta阶段】第十次Scrum Meeting
    团队贡献分汇总
    [Gamma]Scrum Meeting#4
  • 原文地址:https://www.cnblogs.com/ChengWenHao/p/Reflect.html
Copyright © 2020-2023  润新知