JobBuilder的默认创建方法是
IJobDetail paymentJob = JobBuilder.Create<Hello>().WithIdentity(jobName,groupName).Build();
我检查了重载但是没有重载我们可以在里面有一个类的实例.创建方法.像这样的东西
IJobDetail paymentJob = JobBuilder.Create<new Hello()>().WithIdentity(jobName,groupName).Build();
但这会给出错误
Operator < cannot be applied to the ‘method group’ or ‘Hello’
我需要这个的原因是:
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.以下是如何实现一个的例子:
http://jayvilalta.com/blog/2012/07/23/creating-a-custom-quartz-net-jobfactory/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。