• c#动态调用不同程序集和命名空间下的类


    首先创建一个RefectionHelper类

    public static class RefectionHelper
    {


    //利用反射创建类的实例
    public static dynamic CreateInstance(string assemblyName, string nameSpace, string className)
    {
    try
    {
    string fullName = nameSpace + "." + className;//命名空间.类型名
    dynamic ect = Assembly.Load(assemblyName).CreateInstance(fullName);//加载程序集,创建程序集里面的 命名空间.类型名 实例
    return ect;//类型转换并返回
    }
    catch (Exception ex) { Console.WriteLine(ex.Message + "===" + ex.StackTrace); return false; }
    }

    }

    我们这个时候就可以调用了

    var reportClass = RefectionHelper.CreateInstance("DigitalLabSysReport", "DigitalLabSysReport.SupervisionReport", "ScheduleReport");//这里就是程序集,命名空间,类型名

    //我有一个DigitalLabSysReport程序集下有一个SupervisionReport文件夹所以命名空间是DigitalLabSysReport.SupervisionReport

    //调用ScheduleReport类里的PushData方法

    reportClass.PushData(obj);

  • 相关阅读:
    继承
    redis面试题收集
    spring知识点
    jvm类加载
    jvm回收机制
    HashMap和ConcurrentHashMap
    java基础
    spring-quartz整合
    alibaba-sentinel-1.8变化
    springcloud执行流程理解图
  • 原文地址:https://www.cnblogs.com/fkxx/p/15508489.html
Copyright © 2020-2023  润新知