0

asp.netアプリケーションに辞書を保存する必要があります。この辞書は基本的に、キー(文字列)から値(文字列)への直接のマッピングです。アプリケーションの存続期間中、辞書は変更されず、約10個の要素が含まれます。

ストアドプロシージャから返される数千行を繰り返し処理し、このディクショナリから対応する値を取得します。

これに取り組むための最良のアプローチは何でしょうか?これが私がそれを実装する上で持っている2つのアイデアです:

  1. Application_Start中にディクショナリをインスタンス化して初期化し、ApplicationStateオブジェクトに保存します。

または ...

  1. 彼らがここで提案していることを実行してください:辞書オブジェクトをweb.configファイルに保存するにはどうすればよいですか?

将来新しい値を追加するのは、コードをまったく変更せずにWeb.Configにエントリを追加するだけなので、オプション2が好きですが、から返されるすべての行の値を取得する必要があるため、パフォーマンスが心配です。ストアドプロシージャ。

web.configのこれらのルックアップはどういうわけか最適化/キャッシュされているのだろうか?

4

2 に答える 2

2

ConfigurationManager値へのアクセスにを使用しているAppSettings場合、これらは最初にアクセスされた後にキャッシュされます。したがって、最初にアクセスするときConfigurationManager.AppSettings["MyValue"]はディスクから読み取られ、その後はキャッシュから読み取られます。

于 2011-08-11T15:26:29.303 に答える
0

少し混ぜてみませんか。Application_Startで、web.config値をディクショナリにロードします。そうすれば、コードを変更せずにリストを構成でき、コードで辞書を簡単に参照できます。

編集:もちろん、ここでの欠点は、Webサイトを再起動したとき(つまり、Application_Startを再度起動したとき)にのみリストが更新されることです。一方、ストレート構成ファイルでは、web.configファイルを変更したときにすぐに結果が得られます。おそらくそれがweb.configオプションを選択する理由です

于 2011-08-11T15:27:33.983 に答える