我有以下代码,它创建一个作业和触发器,然后使用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()'
不确定如何解决此问题。有没有更好的方法将类作为参数传递?