我必须面对的一个要求,如何在ASP.net web应用程序定义一个全局变量
我想客户端访问数据中心,但不使用数据库,所以我想我的web应用程序可以保留一个全球性或应用程序会话变量,包含数据,每个客户端都可以访问相同的数据...我试图在golabl中声明,但似乎只能存储字符串,但其他人...
如何解决这个问题?
谢谢。
我必须面对的一个要求,如何在ASP.net web应用程序定义一个全局变量
我想客户端访问数据中心,但不使用数据库,所以我想我的web应用程序可以保留一个全球性或应用程序会话变量,包含数据,每个客户端都可以访问相同的数据...我试图在golabl中声明,但似乎只能存储字符串,但其他人...
如何解决这个问题?
谢谢。
与所有应用程序的用户分享数据,你可以使用ASP.NET Application对象。鉴于是示例代码访问ASP.NET应用对象:
Hashtable htblGlobalValues = null;
if (Application["GlobalValueKey"] != null)
{
htblGlobalValues = Application["GlobalValueKey"] as Hashtable;
}
else
{
htblGlobalValues = new Hashtable();
}
htblGlobalValues.Add("Key1", "Value1");
htblGlobalValues.Add("Key2", "Value2");
this.Application["GlobalValueKey"] = htblGlobalValues;
Application["GlobalValueKey"]
可以在任何地方在任何用户整个应用程序中使用。这对所有的应用程序用户来说都很常见。
请停止向您的帖子添加签名块。他们使它看起来像你试图给你的网站发送垃圾邮件。在您制作的每个帖子上都有一个链接,您的个人资料就是您的签名。你可以添加任何你喜欢的(在合理的范围内)到你的个人资料页面。这将是发布链接到您的博客,网站,侧边项目,业务等的地方。 – 2010-11-14 01:43:28
好的,谢谢 – Sankalp 2010-11-16 07:09:43
您可以对应用程序 – abatishchev 2011-02-25 14:59:08
如果需要,您可以将数据填入Application
对象中。它不是跨应用程序实例的持久性,但这可能就足够了。
(我不是一分钟要建议,这是一个最好的做法,但没有要求的更清晰的画面,这是所有我可以建议。)
http://msdn.microsoft.com/en-us/library/system.web.ui.page.application.aspx
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx
另一个定义一个全局变量的选择是用一个静态属性创建一个静态类:
public static class GlobalVariables
{
public static string MyGlobalVariable { get; set; }
}
你可以让这个更复杂,如果你要使用这是一个数据存储,但同样的想法。也就是说,如果你有一本字典来存储您的全局数据,你可以做这样的事情:
public static class GlobalData
{
private static readonly object _syncRoot = new object();
private static Dictionary<string, int> _data;
public static int GetItemsByTag(string tag)
{
lock (_syncRoot)
{
if (_data == null)
_data = LoadItemsByTag();
return _data[tag];
}
}
private static Dictionary<string, int> LoadItemsByTag()
{
var result = new Dictionary<string, int>();
// Load the data from e.g. an XML file into the result object.
return result;
}
}
您还可以使用Cache,它具有设置过期时间/日期的优点。
您是指会话变量在整个会话期间保持不变,还是会在客户端(其他会话)之间共享的变量保持不变? – KennyH 2010-11-13 05:28:57
你可以分享你正在尝试使用的例子吗? – jcolebrand 2010-11-14 01:52:36
另请参阅http://stackoverflow.com/questions/20347280/thread-safe-global-variable-in-an-asp-net-mvc-application – Tony 2016-04-16 15:41:55