【问题标题】:How to set Application State value within a class?如何在类中设置应用程序状态值?
【发布时间】:2014-03-14 21:39:53
【问题描述】:

在 App_Code 文件夹中,我创建了一个新类,我想在其中设置应用程序状态变量的值。

为了从应用程序状态读取,我使用了以下代码:

string text = (string)HttpContext.Current.Application["text"];

但现在我想设置应用程序状态的值。我尝试了以下代码,但没有成功:

System.Web.HttpApplicationState.Application["text"] = "string";

设置应用程序状态变量值的正确方法是什么?

【问题讨论】:

  • 你怎么知道它不起作用?
  • Visual Studio 用红色下划线“Application”,并表示:“'System.Web.HttpApplicationState' 不包含'Application'的定义”
  • 如果我没看错你的问题,你为什么不在你想写的时候用同样的阅读方法呢? HttpContext.Current.Session["text"] = YOUR_VALUE;
  • 据我所知,这种方法仅供阅读。你确定它会起作用吗? Visual Studio 似乎接受它。
  • @MohammedElSayed 提到了正确的事情,您应该使用两者中的任何一个进行读写。

标签: c# asp.net class global-variables application-state


【解决方案1】:

使用这个:

HttpContext.Current.Application["text"] = "string";

当您在页面的代码隐藏文件中设置值时,您可以简单地使用:

Application["text"]="string";

【讨论】:

    【解决方案2】:

    您可以按以下方式使用吗?

    将应用程序状态写为:

    System.Web.HttpApplicationState.Application["text"] = "string";
    

    并将它们读作

    string text = (string)Application["text"];
    

    试试这个。

    【讨论】:

      【解决方案3】:

      从页面代码(例如类文件)外部读取/写入应用程序/会话变量的技术是相同的,您必须在继续之前明确指向当前的 HTTP 上下文。

      例如,要读取任何应用程序变量,请使用以下行:

      var myVariable = HttpContext.Current.Application["PROPERTY_NAME"]

      要写回一个值,请使用以下行

      HttpContext.Current.Application["PROPERTY_NAME"] = YOUR_VALUE

      同样的事情也适用于Session 变量。

      P.S:我是第一个提出这个建议的人,请参阅我上面的评论。 :)

      【讨论】:

        猜你喜欢
        • 2022-10-06
        • 2012-04-03
        • 2015-06-26
        • 2017-06-17
        • 2020-09-20
        • 2010-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多