我有一个简单的访问控制类,它允许检查用户是否有权限,然后与静态变量交互:
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/