【问题标题】:The effect of static properties in a web context静态属性在 Web 上下文中的影响
【发布时间】:2008-10-28 11:05:56
【问题描述】:

我需要更改 Web 应用程序中对象的静态属性。该属性具有硬编码到对象中的默认值。如果我更改 Application_Start 中的静态属性,更改是否会生效:

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

B) 直到对象被 GC'd 然后由下一个访问器重新初始化

C) 取决于

请注意,我要设置的属性只是一个字符串

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    静态变量的作用域是它的 AppDomain。所以不,它不会被垃圾回收 - 但如果 AppDomain 被回收(这在 ASP.NET 中可能会发生相当多的情况),那么您最终将有效地得到一个“新”静态变量。

    【讨论】:

      【解决方案2】:

      根据我在这里使用我们的 Web 应用程序的经验,答案是 A。据我所知,静态类永远不会被 GC,它在整个进程的生命周期中都存在(在这种情况下,ASP.NET 工作者过程)

      【讨论】:

      • AppDomain 的生命周期,而不是进程。
      【解决方案3】:

      选择 A) 应用实例变量

      上下文存储参考httpContext。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-20
        • 1970-01-01
        • 2018-04-18
        相关资源
        最近更新 更多