簡體   English   中英

如何以編程方式修改web.config的SqlCacheDependency部分

[英]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是只讀的。 pollTimeenabled屬性也是如此。

到目前為止,我已經通過使用反射將_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM