c#/quartz-传递类作为函数的参数
我有以下代码,它创建了一个作业和触发器,然后使用Quartz调度作业:c#/quartz-传递类作为函数的参数,c#,class,parameters,quartz-scheduler,quartz.net,C#,Class,Parameters,Quartz Scheduler,Quartz.net,我有以下代码,它创建了一个作业和触发器,然后使用Quartz调度作业: public void ScheduleJob<T>(string jobName, string jobGroup, string triggerName, string triggerGroup) { var scheduler = StdSchedulerFactory.GetDefaultScheduler(); var jobKey = new JobKey(jobName, jobGr
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”必须转换为“Quartz.IJob”才能使用
作为泛型方法“JobBuilder”中的参数“T”
Quartz.JobBuilder.Create()'
不知道如何解决这个问题。是否有更好的方法将类作为参数传递?可能需要向方法添加类型约束,以便编译器知道如何调用
JobBuilder.Create()
。像这样:
public void ScheduleJob<T>(string jobName, string jobGroup, string triggerName, string triggerGroup) where T: IJob
{ ... }
public void ScheduleJob(字符串jobName、字符串jobGroup、字符串triggerName、字符串triggerGroup),其中T:IJob
{ ... }
然后再这样称呼它:
ScheduleJob<DeletionJob>(...);
ScheduleJob(…);
您可以阅读有关约束和约束的更多信息
ScheduleJob<DeletionJob>(...);