背景
我正在使用.NET 5和Quartz.NET。我想用触发器做很多工作(但每个工作都是单独的(。创建作业的示例代码:
IJobDetail newJob = JobBuilder.Create<MyJob>()
.WithIdentity("myJob", "myGroup")
.Build();
MyJob
是包含Execute
方法的类,该方法具有要作为作业执行的代码。我有很多这样的课。我想创建通用方法,以便从包含类作为类型的列表中创建新作业(或者以不同的方式,我愿意接受建议(。
我的概念的伪代码:
foreach(Type t in types)
{
IJobDetail newJob = JobBuilder.Create<t>()
.WithIdentity("myJob", "myGroup")
.Build();
}
问题
我的问题是:有办法做到这一点吗?我在Stack上看到了一些关于使用类似集合中的类型制作List
的线程,但我无法将其适应我的代码。我真的不想重复这样的代码,因为我不会配置太多这些作业。
解决方案
Quartz.NET似乎共享了在作业构造函数中使用Type变量的方法:.OfType(Type type)
。
IJobDetail newJob = JobBuilder.Create()
.OfType(jobType)
.WithIdentity("myJob", "myGroup")
.Build();