Asp.net mvc 3 Unity MVC3 can';t解析Quartz.net作业构造函数内的对象

Asp.net mvc 3 Unity MVC3 can';t解析Quartz.net作业构造函数内的对象,asp.net-mvc-3,unity-container,quartz.net,quartz.net-2.0,Asp.net Mvc 3,Unity Container,Quartz.net,Quartz.net 2.0,嗨,伙计们, 我真的很困惑,请帮帮我。关于使用Unity创建实例,我遇到了一个问题。我想创建的实例是Client类型,我想在作业构造函数中创建它,但它一直给我空引用错误。在其他情况下,假设在控制器中,解析工作正常,但在此计划作业中,它不再工作。调度器的创建是在Global.asax中进行的 private void SchedulerStart() { ISchedulerFactory schedulerFactory = new StdSchedulerFactory();

嗨,伙计们, 我真的很困惑,请帮帮我。关于使用Unity创建实例,我遇到了一个问题。我想创建的实例是Client类型,我想在作业构造函数中创建它,但它一直给我空引用错误。在其他情况下,假设在控制器中,解析工作正常,但在此计划作业中,它不再工作。调度器的创建是在Global.asax中进行的

private void SchedulerStart() { ISchedulerFactory schedulerFactory = new StdSchedulerFactory(); IScheduler scheduler = schedulerFactory.GetScheduler(); scheduler.Start(); IJobDetail job = JobBuilder.Create().WithIdentity("CheckForCompletedJobs").Build(); ITrigger trigger = TriggerBuilder.Create() .WithDailyTimeIntervalSchedule (s => s.WithIntervalInHours(24) .OnEveryDay() .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(4, 03)) ) .Build(); scheduler.ScheduleJob(job, trigger); } 私有void SchedulerStart() { isSchedulerFactory schedulerFactory=新StdSchedulerFactory(); isScheduler scheduler=schedulerFactory.GetScheduler(); scheduler.Start(); IJobDetail job=JobBuilder.Create().WithIdentity(“CheckForCompletedJobs”).Build(); ITrigger trigger=TriggerBuilder.Create() .使用DailyTimeIntervals时间表 (s=> s、 间隔小时(24) .每天一次 .StartingDailyAt(一天的时间、小时和分钟(4,03)) ) .Build(); ScheduleJob(作业,触发器); } 已完成作业的公共类检查:IJob { 私有只读IPhotoEventRepository\u photoEventRepository; 公共CheckForCompletedJobs() { _clientRepository=DependencyResolver.Current.GetService(); } public void Execute(IJobExecutionContext上下文) { //与clientRepository有关的一些操作 } }
还可以发布quartz.net配置文件吗?发布的作业类将不会编译(\u clientRepository是在仅声明\u photoEventRepository时提到的)。你的空引用在哪里?依赖解析。当前? public class CheckForCompletedJobs : IJob { private readonly IPhotoEventRepository _photoEventRepository; public CheckForCompletedJobs() { _clientRepository = DependencyResolver.Current.GetService(); } public void Execute(IJobExecutionContext context) { //some action with the clientRepository } }