3

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."

请帮忙

4

2 回答 2

2

尝试删除 virtual 关键字,您可能还想尝试使用具有 schedType.GetType() 的 typeof 运算符。我不确定 schedType 的最终类型是什么,它被定义为 var。

于 2012-04-06T19:35:59.443 回答
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);
于 2012-04-07T20:03:11.527 回答