c# – quartz.net中JobBuilder的Create方法中的类实例
发布时间:2020-12-15 22:04:19 所属栏目:百科 来源:网络整理
导读:JobBuilder的默认创建方法是 IJobDetail paymentJob = JobBuilder.CreateHello().WithIdentity(jobName,groupName).Build(); 我检查了重载但是没有重载我们可以在里面有一个类的实例.创建方法.像这样的东西 IJobDetail paymentJob = JobBuilder.Createnew He
JobBuilder的默认创建方法是
IJobDetail paymentJob = JobBuilder.Create<Hello>().WithIdentity(jobName,groupName).Build(); 我检查了重载但是没有重载我们可以在里面有一个类的实例.创建方法.像这样的东西 IJobDetail paymentJob = JobBuilder.Create<new Hello()>().WithIdentity(jobName,groupName).Build(); 但这会给出错误
我需要这个的原因是: public abstract class Hello:IJob { public abstract void Execute(IJobExecutionContext context); } public Hello1: Hello { public void Execute(IJobExecutionContext context) { //implementation } } public Hello2: Hello { public void Execute(IJobExecutionContext context) { //implementation } } public static HelloFactory { public Hello GetHelloType(HelloEnum enum) { Hello job = new Hello(); switch(enum) { case HelloEnum.Type1: job = new Hello1(); case HelloEnum.Type2: job = new Hello2(); } } } 解决方法
只需更改HelloFactory即可返回Type对象而不是Hello对象:
public static class HelloFactory { public Type GetHelloType(HelloEnum theEnum) { Type type; switch (theEnum) { case HelloEnum.Type1: type = typeof(Hello1); break; case HelloEnum.Type2: job = typeof(Hello2); break; } } } 或者,实现自己的JobFactory.以下是如何实现一个的例子: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |