通过配置文件和构造函数的混合配置Quartz.NET

时间:2014-02-27 19:44:41

标签: quartz-scheduler quartz.net

是否可以通过配置文件(quartz.properties或app.config / web.config)中保存的属性混合配置Quartz,还可以通过StdSchedulerFactory构造函数配置一些?

我想通过构造函数传递AdoJobStore连接字符串,因为它是动态的,具体取决于环境,但其余的设置是静态的,所以最好放在配置文件中。

我尝试通过构造函数仅传入quartz.dataSource.myDS.connectionString属性,同时在工作目录中的quartz.config中包含其余属性。但是,我收到错误:

Provider not specified for DataSource: myDS

所以我想这意味着如果你使用接受NameValueCollection的构造函数,那么它就不会检查配置文件了。

我知道quartz.config文件位于正确的位置,因为如果我将连接字符串放在那里并使用默认构造函数,那么一切正常

1 个答案:

答案 0 :(得分:2)

最后,它们都只是命名 - 值对。

您可以在.xml文件中包含“大部分”...然后通过代码“添加”您想要的内容。

或者将所有这些都放在代码中。

请参阅UnitTests获取源代码,您会相当清楚地看到这一点。

这样的事情:

    NameValueCollection config = (NameValueCollection)ConfigurationManager.GetSection("quartz");

    config.Add("MyCodedUpKey", "MyCodedUpValue");

如果你有“碰撞”(配置文件中你要覆盖的“密钥”......应用一些简单的名称对“更新现有密钥”逻辑“

Check if Key Exists in NameValueCollection