我飞机上用静态变量,而不是在ASP.NET应用程序的状态,我想知道如果这是正确的做法:
[Global.asax.cs]
...
public class Global : System.Web.HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
}
...
private static Dictionary<string, object> cacheItems = new Dictionary<string, object>();
private static object locker = new object();
public static Dictionary<string, object> CacheItems
{
get
{
lock (locker)
{
return cacheItems;
}
}
set
{
lock (locker)
{
cacheItems = value;
}
}
}
public static void RemoveCacheItem(string key)
{
cacheItems.Remove(key);
}
...
}
正如你可以看到我使用自动创建的Global.asax(和代码隐藏)文件。 我已经添加了一些静态的变量和方法。 我可以通过这种方式后,使用它们:
[some .cs file]
foreach(KeyValuePair<string, object> dictItem in Global.CacheItems)
{
...
这是正确的方式,或者我应该创建新类,而不是现有的全球? 如果我要创建新类我怎么能做到这一点,在哪里?