Quartz.Net Job Creation即时创建

时间:2012-04-05 23:22:06

标签: quartz.net

Job类必须实现Job接口。“我使用Quartz.Net 1.0.3创建了简单的工作

  public class SimpleTestJob : IJob
    {
        public virtual void Execute(JobExecutionContext context)
        {
             System.Diagnostics.EventLog.WriteEntry("QuartzTest", "This is a test run");

                   }
    }

然后我尝试将上面的作业动态添加到Quartz服务器

首先我收到了一个使用反射的类型

 string jobType = "Scheduler.Quartz.Jobs.SimpleTestJob,Scheduler.Quartz,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null";    

 var schedType= Type.GetType(jobType, false, true);

它正在工作。然后我尝试创建JobDetail对象

JobDetail job = job = new JobDetail(jobName, groupName, schedType.GetType());

但是我收到了Quartz.Net框架的错误。

"Job class must implement the Job interface."

请帮忙

2 个答案:

答案 0 :(得分:2)

尝试删除虚拟关键字,您可能还想尝试使用scofType.GetType()的typeof运算符。我不确定schedType的类型最终会被定义为var。

答案 1 :(得分:2)

我正在使用Quartz 1.0.3,它是用.net 3.5编译的。

但是schedType.GetType

返回类型为RunTime版本4的类型。

我真的不需要使用GetType函数,因为我读过一个类型,我之前收到的

var schedType= Type.GetType(jobType, false, true);

所以我的修复是

JobDetail job = new JobDetail(jobName, groupName, schedType);