假设我希望在应用程序状态中存储以下实例,以便经常访问。
public class Example {
public string A;
public string B;
public bool C;
public int D;
// ...
}
我无法决定是将整个类存储为Application["Example"]
,还是将其属性单独存储为Application["ExampleA"]
等。
我的想法是((Example)Application["Example"]).A
可能必须将整个类复制到内存中才能访问一个属性 - 是吗?或者我错了?
答案 0 :(得分:1)
我会使用静态全局变量,性能稍好一些,类型安全并且会使您的代码更易于阅读。有关详细信息,请参阅...
答案 1 :(得分:0)
你说得对,但......
如果您只需要其中一个属性的值,则无需复制整个对象。 从概念上讲,如果我们谈论的是价值对象(您不需要身份或特定对象),您只能存储该属性。 如果您需要知道某个特定对象的属性值(对用户密码进行成像),则应存储整个对象。
答案 2 :(得分:0)
无论如何应用程序状态都存储在内存中,因此我无法看到检索类的重大开销。我很确定,虽然可能是错的,但每次请求都不会对类进行序列化/反序列化。