ASP.net c#全局可用对象

时间:2012-01-10 03:03:56

标签: 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);

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

3 个答案:

答案 0 :(得分:4)

你可以这样做:

Application.Add("ArcadeLastPlayers", new Stack<int>());

然后

((Stack<int>)Application["ArcadeLastPlayers"]).Pop();

或者你可以制作某种全局静态,所以每次你需要检索它时都不必强制转换它:

namespace GlobalUtils {
    public static class ArcadeData {
        public static Stack<int> ArcadeLastPlayers = new Stack<int>();
    }
}

然后

GlobalUtils.ArcadeData.ArcadeLastPlayers.Pop();

答案 1 :(得分:2)

如果您想使用HttpApplcationState,您应该能够执行以下操作:

Application.Add("ArcadeLastPlayers", new Stack<int>(16));

HttpApplicationState获取名称和对象的字符串作为关联值。当您检索“ArcadeLastPlayers”值时,您所要做的就是将其强制转换为堆栈。

答案 2 :(得分:1)

使用单身http://msdn.microsoft.com/en-us/library/ff650316.aspx - 将.cs文件放在app_code中,bob是你的阿姨。