众所周知,静态变量不能用于 Web应用程序因为它在整个应用程序中保持静态。但是,有没有可以在Web应用程序中使用静态变量来实现功能的场景?
由于
答案 0 :(得分:1)
您可以将静态信息存储在多个位置......
(或者我误解了这个问题?)
答案 1 :(得分:1)
我不确定我是否理解这个问题,但有些情况下,如果了解其含义,在Web应用程序中使用静态变量是完全正常的。例如,使用NHibernate和“每请求会话”模型的.NET Web应用程序中的常见用法是保持ISessionFactory的静态实例以创建新的NHibernate会话。这很有用,因为会话工厂是非常繁重的对象,并且通常需要大量资源才能创建。
答案 2 :(得分:1)
配置数据,数据库连接字符串,从数据库源检索的应用程序的常量数据。
任何在初始化后都不需要改变的东西。
例如,我可以在页面上获取配置设置,并一次又一次地使用。在此示例中,一旦myUrl初始化,它将永远不必再次访问web.config文件,直到重新启动Web应用程序。
static public string myUrl = string.Empty
public void SomeRoutine()
{
if ( string.IsNullOrEmpty( myUrl ) )
myUrl = ConfigurationManager.AppSettings[ "myUrl" ].ToString();
...
Response.Redirect( myUrl );
}
答案 3 :(得分:0)
您没有提到您正在使用的Web框架,但如果您使用的是ASP.Net,则可以将对象分配给Application对象或Session对象,该对象将在请求之间跨应用程序保存信息,并在所有对象之间保存信息。分别来自个人用户的请求。
如果您以一般方式询问,并且我怀疑您是因为这是标记的主观+讨论,那么您可以尝试使用cookie来保存变量以满足用户的所有请求。
至于为所有用户保留一些价值,您应该看一下您正在使用的Web框架。您可以选择将某些内容存储在每个请求都可访问的文件中,以及将某些内容存储在ASP.Net的Application对象中。
如果我在这里过于务实,我很抱歉,但是我住的地方已经很晚了。)。