私のアプリケーションWeb.configキー値データをクラスプロパティまたはディクショナリオブジェクトに設定データを格納できるSingletonオブジェクトにキャッシュします。パフォーマンスと柔軟性を考慮すると、私は辞書やクラスのプロパティの使用を決めることができません。私はプロパティを使用する場合、私は、各キーの追加/削除を管理する必要があるのに対し、私のシングルトンモデルのロジックに変更を加える必要はありませんように、新しいキーが削除/追加されるたびに設定データをキャッシュするためにプロパティまたはディクショナリオブジェクトを使用する必要があります
- 辞書はあまり変化しています。
- 辞書を使用しているうちに、エラーが発生しやすく管理が困難な文字列にキー名を指定する必要があります。
上記の2つの理由から、私は現在、キャッシュされたデータを格納する辞書を使用しています。より良い解決策が存在するかどうかをご提案ください。私のサンプルコードです。
public class ConfigData
{
/// <summary>
/// The configuration data
/// </summary>
public static readonly IDictionary<string, string> ConfigurationData = new Dictionary<string, string>();
/// <summary>
/// Initializes the <see cref="ConfigData" /> class.
/// </summary>
static ConfigData()
{
try
{
ConfigurationData = NVCExtender.ToDictionary(ConfigurationManager.GetSection("appSettings") as NameValueCollection);
}
catch (Exception ex)
{
throw;
}
}
}
キャッシュしないとどうなりますか?私は 'ConfigurationManager'を通して' config'データに直接アクセスすることを意味します。これに何か問題はありますか? – Bharadwaj
Web設定データをキャッシュする理由は、私たちが現金化すれば、Configuration XMLクラスを使用することによって、config XMLの読み取りに必要なキー値を追加する必要がないという神話でした。しかし、ConfigurationManagerクラスは、XMLのKey-Valueデータをキャッシュすることで、私が達成したいことを正確に実行します。 –
これらのオプションがxmlファイルに含まれている理由があります。値を変更する場合は、新しい値のキャッシュを更新するタイミングを処理する必要があります。私が見ているようにキャッシュしない方が良いです。 – Bharadwaj