我需要在Web应用程序中更改对象的静态属性。该属性具有硬编码到对象中的默认值。如果我更改了Application_Start中的静态属性,那么改变了吗:

A)永远(好吧,直到应用程序被回收)

B)直到对象为GC'd,然后由下一个访问者重新进行<-p>

C)取决于

请注意,我要设置的属性只是一个String

有帮助吗?

解决方案

静态变量的范围是它的AppDomain。所以不,它不会收集垃圾 - 但如果AppDomain被回收(在ASP.NET中可能会发生相当大的数量),那么你最终会得到一个“新”的东西。静态变量,有效。

其他提示

根据我在这里使用我们的Web应用程序的经验,答案是A.据我所知,静态类永远不会被GC,它会持续一段时间(在这种情况下,ASP.NET工作者)处理)

去A) 应用实例变量

有关上下文存储,请参阅httpContext。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top