如何在需要空构造函数的类中注入我的存储库/接口?

时间:2010-08-22 20:54:53

标签: castle-windsor s#arp-architecture quartz.net

在我的控制器中,我像这样访问我的存储库:

private readonly IProjectRepository projectRepository;

public ProjectsController(IProjectRepository projectRepository) {
    Check.Require(projectRepository != null, "projectRepository may not be null");
    this.projectRepository = projectRepository;
}

[Transaction]
public ActionResult Index() {
    var projects = projectRepository.GetAll();
    return View(projects);
}

这使我可以访问操作和持久化对象到我的数据库。我正在尝试使用Quartz.Net,但Quartz作业采用空构造函数,如下所示:

    private readonly IProjectRepository projectRepository;

    public QuartzJob() {}

    public void Execute(JobExecutionContext context)
    {
        var projects = projectRepository.GetAll();
    }

这将导致空对象引用,因为我还没有启动它。我该如何解决这个问题?我觉得这与城堡温莎有什么关系,但我还是新手,不知道该怎么办。我不能成为第一个使用Quartz.Net的Sharp项目的人,任何帮助都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

使用Quartz.Net integration facility。它可以让您像任何其他Windsor服务一样处理石英作业。