C# 私人财产的寿命
试图找到答案,但我没有找到任何信息 我基于以下示例构建了完整的属性:C# 私人财产的寿命,c#,asp.net-mvc,C#,Asp.net Mvc,试图找到答案,但我没有找到任何信息 我基于以下示例构建了完整的属性: private static Foo _foo; public static Foo foo { get { if (_foo!= null) return _foo; //else do some logic and fill _foo; _foo = ....; }}; 问题是,根据页面上的生命周期,什么时候u foo将为空? 在第一次加载时,它当然会为空,但什么时候它会再次为空?回收
private static Foo _foo;
public static Foo foo {
get
{
if (_foo!= null)
return _foo;
//else do some logic and fill _foo;
_foo = ....;
}};
问题是,根据页面上的生命周期,什么时候u foo将为空?
在第一次加载时,它当然会为空,但什么时候它会再次为空?回收利用?在iisreset上?还是重新加载页面
此属性位于类库(外部dll)上
根据页面上的寿命,什么时候\u foo将为空?在第一次加载时,它当然会为空,但什么时候它会再次为空?回收利用?在iisreset上?还是重新加载页面
它不绑定到页面,在MVC中,实例数据与请求相关,静态数据绑定到应用程序实例
每次重新启动应用程序时(即IIS回收或重置时),该值都将为null
这使得服务器应用程序中的
静态
数据相当可疑。它可以用作一种简单的缓存形式,但请注意,这不会“向外扩展”。每个服务器都有自己的副本。链接问题中的公认答案就是您问题的答案-尽管它与变量是否为private
无关。不,这是一个关于MVC中生命周期的问题,而不是关于C#static的问题。旁注,属性的正确命名为publicstaticfoo Foo{…}