asp.net-mvc-3 – ASP.Net MVC 3,Ninject和Quartz.Net – 如何?
发布时间:2020-12-15 22:59:29 所属栏目:asp.Net 来源:网络整理
导读:我现在正在使用Ninject 2.2.1.4,与我的MVC3,我成功配置Ninject运行它,但我不知道如何使Ninject运行在Quartz.Net在我的MVC3 谁能帮忙? 解决方法 创建一个使用Ninject的JobFactory public class NinjectJobFactory : IJobFactory{ private readonly FuncType,
我现在正在使用Ninject 2.2.1.4,与我的MVC3,我成功配置Ninject运行它,但我不知道如何使Ninject运行在Quartz.Net在我的MVC3
谁能帮忙? 解决方法
创建一个使用Ninject的JobFactory
public class NinjectJobFactory : IJobFactory { private readonly Func<Type,IJob> jobFactory; public NinjectJobFactory (Func<Type,IJob> jobFactory) { this.jobFactory = jobFactory; } public IJob NewJob(TriggerFiredBundle bundle) { return this.jobFactory(bundle.JobDetail.JobType); } } 和QuarzSchedulerProvider public class QuartzSchedulerProvider : Provider<IScheduler> { private readonly IJobFactory jobFactory; private readonly IEnumerable<ISchedulerListener> listeners; private readonly ISchedulerFactory schedulerFactory; public QuartzSchedulerProvider( ISchedulerFactory schedulerFactory,IJobFactory jobFactory,IEnumerable<ISchedulerListener> listeners) { this.jobFactory = jobFactory; this.listeners = listeners; this.schedulerFactory = schedulerFactory; } protected override IScheduler CreateInstance(IContext context) { var scheduler = this.schedulerFactory.GetScheduler(); scheduler.JobFactory = this.jobFactory; foreach (var listener in this.listeners) { scheduler.AddSchedulerListener(listener); } return scheduler; } } 和一个SchedulerFactoryProvider public class QuartzSchedulerFactoryProvider : Provider<ISchedulerFactory> { protected override ISchedulerFactory CreateInstance(IContext context) { var properties = new NameValueCollection(); properties["quartz.dataSource.DataSource.connectionString"] = "Your connection string"; properties["quartz.dataSource.DataSource.provider"] = "Your provider"; properties["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX,Quartz"; properties["quartz.jobStore.driverDelegateType"] = "Quartz.Impl.AdoJobStore.StdAdoDelegate,Quartz "; properties["quartz.jobStore.tablePrefix"] = "QRTZ_"; properties["quartz.jobStore.dataSource"] = "DataSource"; properties["quartz.jobStore.useProperties"] = "true"; return new StdSchedulerFactory(properties); } } 并配置 Bind<IJobFactory>().To<NinjectJobFactory>(); Bind<ISchedulerFactory>().ToProvider<QuartzSchedulerFactoryProvider>(); Bind<IScheduler>().ToProvider<QuartzSchedulerProvider>().InSingletonScope(); Bind<Func<Type,IJob>>().ToMethod(ctx => t => (IJob)ctx.Kernel.Get(t)); 如果你需要一些ISchedulerListener,例如用于日志记录也绑定在这里. 注入IScheduler的一个实例,您想要添加作业,最有可能您必须将实例的属性注入到global.asax中.但是请注意,我没有在MVC上下文中使用Quarz,而我认为计划任务不属于Web应用程序,而是属于在同一服务器上运行的服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-web-api – Asp.net web api中的DbGeometry序列化问
- 如何在asp.net上模拟同时的web请求?
- asp.net – html文本框的最大长度是多少?
- asp.net-mvc – OnModelCreating与数据库配置的DataAnnotat
- asp.net – ASP菜单没有显示
- asp.net – 将Salesforce.com与.NET Server C集成的最佳安全
- asp.net-mvc – 如何在ASP.NET MVC中维护Html.CheckBox()的
- asp.net – 防止在ASP .Net中为单个用户进行多次登录
- asp.net – Windows Azure启动任务未触发
- asp.net – 如何在没有查找AspNetUserRoles表的情况下获取W
推荐文章
站长推荐
- asp.net – 有没有办法动态包装/拦截HtmlHelper扩
- asp.net-mvc – 如何在HTML属性中添加剃刀值和字
- asp.net – AJAX updatepanel给出错误
- asp.net – 禁止从网页复制数据
- 如何通过ASP.NET中的另一个下拉列表过滤下拉列表
- Pro ASP.NET Core MVC(三)【MVC模式,项目和约定
- asp.net-mvc – ASP.NET MVC 6中的基本视图页面
- asp.net – WCF:是否有一个属性要在OperationCo
- asp.net MVC 3/4相当于一个response.filter
- asp.net-mvc-3 – 如何避免使用MVC3 FileContent
热点阅读