【问题标题】:Create collection of elements based on types listed in another collection根据另一个集合中列出的类型创建元素集合
【发布时间】:2021-04-16 11:11:44
【问题描述】:

背景

我正在使用 .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 的线程,但我无法使其适应我的代码。我真的不想重复那样的代码,因为我不会过多地配置这些作业。

【问题讨论】:

    标签: c# .net-core quartz.net


    【解决方案1】:

    解决方案

    似乎 Quartz.NET 共享在作业构造函数中使用 Type 变量的方法:.OfType(Type type)

    IJobDetail newJob = JobBuilder.Create()
        .OfType(jobType)
        .WithIdentity("myJob", "myGroup")
        .Build();
    

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2018-12-11
      • 2013-07-31
      • 2013-09-23
      • 2022-01-09
      • 1970-01-01
      相关资源
      最近更新 更多