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);

 

posted @ 2021-11-04 15:48  不等式夹逼法  阅读(493)  评论(0编辑  收藏  举报