c# - 一段时间后是否重置静态变量

标签 c# asp.net variables lifetime

我有一个简单的访问控制类,它允许检查用户是否有权限,然后与静态变量交互:

private static bool canUpdate = false;

这是在页面加载期间使用的 protected void Page_Load(object sender, EventArgs e)

{
    if (!Page.IsPostBack)
    {
        AccessControl I = new AccessControl(parameter);

        canUpdate = I.HaveEdit;
    }
    BindGrid();
}

这一切都很好,它很简单,bool 被用作另一个方法(称为 gridview 代码表达式)的一部分,以便有条件地在一行中显示控件。 这也很好用。

但是我正处于测试阶段,我意识到在正常操作下一切都很好,但是经过一段时间后(很重要,比如半小时左右),按钮不再显示(换句话说 canUpdate已设置为 false)。

显示代码:

protected bool ShowNewStamps(object date)
{
    //Returns to Bind Expression whether to display Timestamp Link
    if (date == null & canUpdate == true)
        return true;
    else
        return false;
}

日期作为绑定(bind)表达式传入,之前传入单元格的日期,因此我知道这不是问题。

只有当页面在很长一段时间后刷新时才会出现这个问题,这是因为静态变量有生命周期,而我只在第一页加载时设置变量吗?

最佳答案

静态变量不会在一段时间后重置。

它很可能是 IIS 回收您的应用程序,从而创建一个新的 AppDomain 和静态。

关于c# - 一段时间后是否重置静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29697379/

相关文章:

javascript - 在 asp.net 中加载页面之前将 javascript 值发送到服务器

python - 如何让 gobject.idle_add() 通过引用传递参数?

java - 在 C# 中,我们可以想象在不编写委托(delegate)的情况下编写我们自己的事件吗?

c# - 在不同存储库中共享类似的 linq to 实体表达逻辑的建议做法是什么

c# - 使用 itextsharp 绘制复选框

c# - 安装 visual studio 2015 后 Microsoft Visual Studio 2012 已停止工作

c# - 从 UpdatePanel 以编程方式强制完全回发

asp.net - IIS Web Garden的优点/缺点

c - 嵌入式系统 C 重启后的静态重新定义

c - C中main之外的变量范围