反射笔记

var ass = Assembly.Load("HRMS.BLL");
foreach (var t in ass.GetTypes())
{
if (t.Name.Contains(className))
{
// 1.Load(命名空间名称),GetType(命名空间.类名)
var bllName = ass.GetTypes().Where(x => x.Name.Contains(className)).FirstOrDefault();
//2.GetMethod(需要调用的方法名称)
MethodInfo method = bllName.GetMethod("GetExportTemplate");
// 3.调用的实例化方法(非静态方法)需要创建类型的一个实例
object obj = Activator.CreateInstance(t);
//4.方法需要传入的参数
object[] parameters = new object[] { model };
// 5.调用方法,如果调用的是一个静态方法,就不需要第3步(创建类型的实例)
// 相应地调用静态方法时,Invoke的第一个参数为null
DataTable dt_Module = (DataTable)method.Invoke(obj, parameters);
}
}

原文地址:https://www.cnblogs.com/nanqinling/p/15156096.html