【发布时间】:2014-07-15 08:36:35
【问题描述】:
我有以下代码,它创建一个作业和触发器,然后用 Quartz 调度该作业:
public void ScheduleJob<T>(string jobName, string jobGroup, string triggerName, string triggerGroup)
{
var scheduler = StdSchedulerFactory.GetDefaultScheduler();
var jobKey = new JobKey(jobName, jobGroup);
var job = JobBuilder.Create<T>()
.WithIdentity(jobKey)
.StoreDurably()
.Build();
var jobTrigger = QuartzConstraints.QuartzCreateTrigger(triggerName, triggerGroup);
scheduler.ScheduleJob(job, jobTrigger);
scheduler.Start();
}
我想将一个类的名称作为T 传递给这个函数,即像这样的类:
class DeletionJob : IJob
{
public void Execute(IJobExecutionContext context)
{
// code here
}
}
我阅读了一些关于将类作为参数传递的页面,但在这种情况下我无法弄清楚如何去做。我收到一个错误,
类型“T”必须可转换为“Quartz.IJob”才能使用它 作为通用方法“JobBuilder”中的参数“T” Quartz.JobBuilder.Create()'
不知道如何解决这个问题。有没有更好的方法将类作为参数传递?
【问题讨论】:
标签: c# class parameters quartz-scheduler quartz.net