试图找到答案,但我没有找到任何信息...
我基于以下示例构建了一个完整的属性:
private static Foo _foo;
public static Foo foo {
get
{
if (_foo!= null)
return _foo;
//else do some logic and fill _foo;
_foo = ....;
}};
问题是,根据页面的生命周期_foo何时为空? 在第一次加载时,它将为null但是什么时候再次为null?在回收?在iisreset?或页面重新加载?
此属性位于类lib(外部dll)
上答案 0 :(得分:2)
根据页面的生命周期,_foo何时为空?在第一次加载时,它将为null但是什么时候再次为null?在回收?在iisreset?或页面重新加载?
它没有绑定到Page,在MVC实例中数据是相对于Request而静态数据绑定到Application实例。
每次重新启动应用程序时,即在IIS回收或重置时,它都将为空。
这使得static
数据在服务器应用程序中相当可疑。它可以用作一种简单的缓存形式,但请注意,这并没有“向外扩展”。每个服务器都有自己的副本。