Verwenden statischer Variablen anstelle des Anwendungsstatus in ASP.NET

Ich plane, statische Variablen anstelle des Anwendungsstatus in ASP.NET zu verwenden, und frage mich, ob dies der richtige Ansatz ist:

[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);
    }

    ...
}

Wie Sie sehen, verwende ich die automatisch erstellte Datei Global.asax (und den Code dahinter). Ich habe einige statische Variablen und Methoden hinzugefügt. Ich kann sie danach auf diese Weise verwenden:

[some .cs file]
foreach(KeyValuePair<string, object> dictItem in Global.CacheItems)
{
    ...

Ist dies der richtige Weg, oder sollte ich eine neue Klasse anstelle der bestehenden globalen Klasse erstellen? Wenn ich eine neue Klasse erstellen sollte, wie kann ich das tun und wo?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage