c#/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

我有以下代码,它创建了一个作业和触发器,然后使用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”必须转换为“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>(...);