在应用程序状态(ASP.NET)中存储类

时间:2011-07-28 10:19:29

标签: asp.net class application-state

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

ASP.NET Application state vs a Static object

答案 1 :(得分:0)

你说得对,但......

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

答案 2 :(得分:0)

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