【发布时间】:2018-01-29 23:25:31
【问题描述】:
我的 web.config 中有一个石英配置部分,我想向它添加一个键值字段。 (我知道我可以去 web.config 并手动添加它,但这违背了目的)
我试过用这种方式
var config = (NameValueCollection)WebConfigurationManager.GetSection("quartz");
config.Add("quartz.dataSource.quartzDS.connectionString", "data source =..");
但它失败了,因为集合是只读的,不能修改。任何提示如何做到这一点?
编辑:我最终将配置复制到 nameValueCollection,然后将其复制到另一个(对于只读属性)添加我想要的键值并将其传递给我需要的函数。
var oldConfig = (NameValueCollection)WebConfigurationManager.GetSection("quartz");
var config = Test(oldConfig);
var connectionString = unitOfWork.GetConnectionStringByTenantIdentifier(tenantId);
config.Add("quartz.dataSource.quartzDS.connectionString", connectionString);
await unitOfWork.GetService<SchedulerService>().StartScheduler(config, tenantId);
这样,我将按照我想要的方式为每个租户进行自定义配置。抱歉,如果我的问题不清楚。
【问题讨论】:
标签: c# asp.net-web-api web-config quartz-scheduler