我在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?