using Learun.Loger; using Quartz; using System; using System.Reflection; namespace Learun.Application.Scheduler { public class DumbJob { private Log log = LogFactory.GetLogger("DumbJob"); public void Execute(IJobExecutionContext context) { try { JobKey key = context.JobDetail.Key; JobDataMap dataMap = context.JobDetail.JobDataMap; string taskClass = dataMap.GetString("taskClass"); // Load(命名空间名称),GetType(命名空间.类名) Type type = Assembly.Load("Learun.Application.TwoDevelopment"). GetType(taskClass); // GetMethod(需要调用的方法名称) MethodInfo method = type.GetMethod("Execute"); // 调用的实例化方法(非静态方法)需要创建类型的一个实例 object obj = Activator.CreateInstance(type); // 方法需要传入的参数 object[] parameters = new object[] { }; log.Info("开始执行任务【"+ key + "】!" + Environment.NewLine); // 相应地调用静态方法时,Invoke的第一个参数为null method.Invoke(obj, parameters); } catch (Exception ex) { log.Error(ex); } } } }