我最近有点麻烦。

在WebForm上,我声明一个静态对象,如下所示:

public static MyObject myobject=new MyObject();
Response.Write(myobject.Title());


现在,如果我加载另一个不包含myobject声明的页面,然后再次执行

Response.Write(myobject.Title());


我看到了初步的结果。导航期间,对象是否由于静态而存储在会话中? VIEWSTATE认为吗?还是发生了什么?

最佳答案

这只是一个静态变量。它与类型一起“存在”-因此它将由在同一AppDomain中通过相同类型访问相同字段的所有代码共享。它会在AppDomain回收时丢失,并且不会在多台服务器之间共享,等等。

基本上,除了偶尔用于本地缓存之外,在Webapp中使用static变量不是一个好主意。

10-07 19:42
查看更多