41

標準の ASP.NET アプリケーションを使用している場合、オブジェクト インスタンスをアプリケーション状態にするのとは対照的に、オブジェクトを静的にすることに違いはありますか?

私の理解では、両方のオブジェクトがアプリ ドメインに対して一度だけ存在します。

次に、ASP.NET サイトの参照先の dll に静的オブジェクトがある場合はどうなりますか。アプリ ドメインの一部でもあるため、常に一度存在しますか?

4

1 に答える 1

58

出典: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q312607

ASP.NET には、既存のアプリケーションを ASP.NET に簡単に移行できるように、従来の ASP との互換性を主な目的としてアプリケーションの状態が含まれています。Application オブジェクトではなく、アプリケーション クラスの静的メンバーにデータを格納することをお勧めします。これにより、アプリケーション ディクショナリ内の項目にアクセスするよりも高速に静的変数にアクセスできるため、パフォーマンスが向上します。

また、はい、静的変数はどこから読み込まれたかに関係なく同じように動作し、アプリ ドメインごとに 1 つだけ存在します ([ThreadStatic] というラベルの付いた変数について話している場合を除きます)。

于 2008-11-19T23:23:46.803 に答える