0

假设我希望在应用程序状态中存储以下实例,以便经常访问。

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

我无法决定是将整个类一起存储为Application["Example"],还是将其属性单独存储为Application["ExampleA"]etc。

我的想法是,((Example)Application["Example"]).A可能必须将整个类复制到内存中才能访问一个属性——对吗?还是我弄错了?

4

3 回答 3

1

我会使用静态全局变量,性能稍好一些,类型安全,并使您的代码更易于阅读。欲了解更多信息,请参阅...

ASP.NET 应用程序状态与静态对象

于 2011-07-28T10:33:20.303 回答
0

你是对的,但是....

如果您只需要其中一个属性的值,则不需要复制整个对象。从概念上讲,如果我们谈论的是值对象(您不需要身份或特定对象),您可以只存储属性。如果您需要知道一个特定对象的属性值是什么(成像用户密码),您应该存储整个对象。

于 2011-07-28T10:22:49.007 回答
0

无论如何,应用程序状态都存储在内存中,因此我看不到检索类的显着开销。我相当确定,虽然可能是错误的,但每个请求都不会对类进行序列化/反序列化。

于 2011-07-28T10:24:07.323 回答