在c#类中设置全局变量

时间:2009-12-28 12:28:02

标签: c# asp.net global-variables

我尝试在一次页面请求期间设置一个带有实时的全局变量。

在经典als中,我使用了这样的:


dim VariableName
VariableName = "test";

sub testsub()
    VariableName += VariableName + "new"
    response.write VariableName
end sub

response.write VariableName '-> test
testsub() '-> testnew

现在在asp.net中我尝试在我的类中设置变量,如下所示:

public static class MyClass
{
    public static string GlobalVar = "test";

    public static string MyMethod()
    {
        GlobalVar += GlobalVar + "new";

        return GlobalVar;
    }
}

但现在问题是,这个变量就像一个应用程序变量,其寿命超过所有页面请求。

在一个请求中我可以在哪里定义具有生命周期的变量,并且在所有方法和其他类中都可以使用?

3 个答案:

答案 0 :(得分:5)

HttpContext.Current.Items["ThisVariableHasRequestScope"] = "SomethingFancy";

修改

一个简单的例子

AClass.cs:

public class AClass {
    public void Something() {
        // Set the value
        HttpContext.Current.Items["Test"] = "xxx";
    }
}

BClass.cs

public class BClass{
    public void SomethingElse() {
        // Get the value
        var test = HttpContext.Current.Items["Test"] as string;
    }
}

答案 1 :(得分:2)

尝试使用ASP.NET 会话,看看它是否符合您的需求。

答案 2 :(得分:0)

您还可以使用Page.Context属性,因为它在所有页面生命周期中都可用。