[英]How do I programatically modify the SqlCacheDependency section of web.config
我的web.config中有此部分
<system.web>
<caching>
<sqlCacheDependency pollTime="60000" enabled="true">
<databases>
<add connectionStringName="CS" name="DB"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
我正在嘗試使用此代碼在<databases>
元素中添加新條目
SqlCacheDependencySection section = ConfigurationManager.GetSection("system.web/caching/sqlCacheDependency") as SqlCacheDependencySection;
section.Databases.Add(new SqlCacheDependencyDatabase("DB2", "CS2", 60000));
但是我收到一個錯誤消息,指出databases
是只讀的。 pollTime
和enabled
屬性也是如此。
到目前為止,我已經通過使用反射將_bReadOnly
私有屬性設置為false
來使它們可寫
FieldInfo fi = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
fi.SetValue(section, false);
使用反射更改密封的.net類中的私有屬性的值時,我感到不太舒服。 另外,我也不想使用ConfigurationManager.OpenExeConfiguration
編輯web.config文件,因為這將重新啟動工作進程。
還有其他方法可以在后面的代碼中配置SqlCacheDependency嗎?
這不是一個直接的答案,但是也許可以通過在部署時使用配置轉換來解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.