ASP.NET C# 全局可用对象

Tom*_*len 4 c# asp.net stack global-asax

我如何将一个Stack对象添加到我的,global.asax以便整个应用程序都可以访问它?目前我有:

void Application_Start(object sender, EventArgs e)
{
    // Global vars
    Application.Add("ArcadeTotalUniquePlayers", 0);
    Application.Add("ArcadeTotalPlays", 0);
    Stack<int> ArcadeLastPlayers = new Stack<int>(16);
Run Code Online (Sandbox Code Playgroud)

前两个变量有效,但我不确定如何使Stack全局可访问。

Ada*_*kis 5

你可以这样做:

Application.Add("ArcadeLastPlayers", new Stack<int>());
Run Code Online (Sandbox Code Playgroud)

进而

((Stack<int>)Application["ArcadeLastPlayers"]).Pop();
Run Code Online (Sandbox Code Playgroud)

或者您可以制作某种全局静态,这样您就不必在每次需要检索它时都进行转换:

namespace GlobalUtils {
    public static class ArcadeData {
        public static Stack<int> ArcadeLastPlayers = new Stack<int>();
    }
}
Run Code Online (Sandbox Code Playgroud)

进而

GlobalUtils.ArcadeData.ArcadeLastPlayers.Pop();
Run Code Online (Sandbox Code Playgroud)