0

非常に頻繁にアクセスできるように、次のインスタンスを Application State に保存したいとします。

public class Example {
  public string A;
  public string B;
  public bool C;
  public int D;
  // ...
}

クラス全体を としてまとめて保存するか、Application["Example"]そのプロパティを個別に保存するかApplication["ExampleA"]などを決定できません。

私の考えでは、((Example)Application["Example"]).A1 つのプロパティにアクセスするためだけに、クラス全体をメモリにコピーする必要があるかもしれません。そうですか? それとも私は間違っていますか?

4

3 に答える 3

1

静的グローバル変数を使用すると、パフォーマンスがわずかに向上し、タイプセーフになり、コードが読みやすくなります。詳細については、...

ASP.NET アプリケーションの状態と静的オブジェクト

于 2011-07-28T10:33:20.303 に答える
0

あなたは正しいですが....

プロパティの 1 つの値だけが必要な場合は、オブジェクト全体をコピーする必要はありません。概念的には、値オブジェクトについて話している場合 (ID や特定のオブジェクトは必要ありません)、プロパティだけを格納できます。特定のオブジェクト (ユーザーのパスワードをイメージする) のプロパティの値を知る必要がある場合は、オブジェクト全体を保存する必要があります。

于 2011-07-28T10:22:49.007 に答える
0

とにかく、アプリケーションの状態はメモリに保存されるため、クラスを取得しても大きなオーバーヘッドは見られません。間違っている可能性はありますが、各リクエストでクラスがシリアル化/逆シリアル化されないことはかなり確信しています。

于 2011-07-28T10:24:07.323 に答える