在ASP.NET中使用静态变量代替应用程序状态

我打算在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)

{

    ...

这是正确的方法还是我应该创建新的类而不是现有的Global?如果我应该开设新课程,该怎么办?在哪里?


慕桂英3389331
浏览 399回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP