0

私はC#、. netなどの初心者であり、MVCWebアプリケーションを使用しています。

Application_Start()Global.asax.csで、人々Application.Add("prop", "value")がWeb.configからの値を格納するために使用するいくつかの例を見ました。

次に、を介してコントローラーでアクセスできますHttpContext.Application["prop"]

使用することの違いはありますか

HttpContext.Application["prop"]

と使用

WebConfigurationManager["prop"]

このページでは、http://msdn.microsoft.com/en-us/library/system.web.configuration.webconfigurationmanager.aspxをWebアプリケーションに使用することをお勧めしますWebConfigurationManagerが、については説明していませんHttpContext.Application

どうもありがとう!

4

2 に答える 2

1

どちらも目的が異なります

HttpApplicationStateHttpContext.Applicationを表し、アプリケーション レベルのグローバル変数のセットと考えることができます。これはメモリ内に保存され、ディスクには永続化されないため、ワーカー プロセスが再起動されると失われます。

一方、WebConfigurationManagerは Web.Config ファイルへのアクセスに使用されます。これはディスクに保存され、アプリ プールがリサイクルされるときに永続化されます。

あなたが説明している特定のケースについて、Web.Configからプロパティをメモリにロードし、メモリからそれらにアクセスすることでパフォーマンス上の利点があると誰かが考えたかもしれませんが、パフォーマンス上の利点の多くがそうなるとは確信していません.達成。

于 2012-10-10T13:13:02.410 に答える
0

を使用しHttpApplicationStateて値を保存および取得する場合、web.config ファイルへの書き込みは行われません。実際、その要求に対して既に読み込まれている可能性があります。あなたがしているのは、アプリケーションの存続期間中存在する何らかの形式のキャッシュに保存することです。

構成マネージャーを使用すると、呼び出しが行われたときに (そのインスタンスの) 基礎となる構成ファイルに書き込みますSave

基本的に、これらは異なるものですが、ユーザーであるあなたには同じように機能するように見えるかもしれません.

于 2012-10-10T13:09:36.727 に答える