Я решил.
Я удалил свойство кварца строки подключения и добавил свойство connectionProvider.type, которое позволяет мне переопределить стандартный Quartz.Impl.AdoJobStore.Common.DbProvider.
Итак, я могу расшифровать строку подключения.
Так что мой конфиг выглядит так:
<quartz >
<!-- thread pool info -->
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<!-- job store info -->
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.useProperties" value="true" />
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
<add key="quartz.jobStore.tablePrefix" value="QUARTZ_" />
<add key="quartz.jobStore.dataSource" value="defaultDS" />
<add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
<add key="quartz.dataSource.defaultDS.connectionProvider.type" value="MyDll.MyDbProvider, MyDll" />
</quartz>
<connectionStrings>
<add key="myConnString" connectionString="crypted"/>
</connectionStrings>
Затем я создаю новый проект библиотеки классов, где я создал этот класс:
public class MyDbProvider : DbProvider
{
public MyDbProvider() : base("SqlServer-20", MyHelper.GetConnectionString()) { }
}
public static class MyHelper
{
public static string GetConnectionString()
{
//here i decrypt my connection string from app.config file
}
}
MyDll.dll должен находиться в том же каталоге, что и Quartz.Server.exe.
Надеюсь, это кому-нибудь поможет!