0

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 クラスのプライベート プロパティの値を変更することにあまり慣れていません。また、これを使用して web.config ファイルを編集したくありませんConfigurationManager.OpenExeConfiguration。これは、ワーカー プロセスを再起動するためです。

コード ビハインドで SqlCacheDependency を構成する別の方法はありますか?

4

1 に答える 1