使用代码而不是配置文件的Quartz .net配置

时间:2014-02-20 19:42:39

标签: quartz.net

我正在使用Quartz .net和AdoJobStore jobStore。在.config文件中,有一个属性用于设置连接字符串:

<add key="quartz.dataSource.default.connectionString" value="Data Source=MyServer;Initial Catalog=MyDatabase;Integrated Security=True" />

但是,我在一个单独的配置文件中管理所有连接字符串,所以我目前需要重复这个connectionString信息。

有没有办法不在.config文件中指定quartz.dataSource.default.connectionString并通过代码手动设置它,所以我可以在我的全局connectionStrings配置文件中获取我的值?

它确实可以在实例化StdSchedulerFactory时使用NameValueCollection,但我不想管理所有设置,只管理连接字符串。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

这样的事情:

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

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

我不会把

“quartz.dataSource.default.connectionString”

在你的.xml文件中

...以避免碰撞......或者你可以编写额外的逻辑来删除和添加 NameValueCollection。

或者在这里看一眼:

Check if Key Exists in NameValueCollection

答案 1 :(得分:0)

最后通过使用代码传递所有配置属性来修复我的问题,但是通过解析quartz配置来自动获取它们。

我手动在末尾添加quartz.dataSource.default.connectionString属性,并通过在我的全局connectionStrings.config文件中获取它来设置值。