【问题标题】:HttpContext.Current accessed in static classes在静态类中访问的 HttpContext.Current
【发布时间】:2009-02-17 10:59:50
【问题描述】:

我可以从静态类和方法中调用HttpContext.Current 吗?

我想为每个用户存储一个值,但希望能够以静态方式访问它。

例如这行得通吗?

public static class StaticClass
{

    public static string SomeThing
    {
        get { return HttpContext.Current.Items["SomeItem"].ToString(); }
    }

}

【问题讨论】:

    标签: c# asp.net static


    【解决方案1】:

    是的,这是它有用的一种方式,当然,调用它的线程当前必须正在处理请求以使其有用。

    【讨论】:

      【解决方案2】:

      你为什么不试试呢?

      是的,这是完全可能的(尽管不一定是好的设计),只要记住在您的项目中引用 System.Web.dll 并检查 HttpContext.Current 是否为 null,以防您最终在非 ASP 中运行.NET 环境。

      【讨论】:

        【解决方案3】:

        是的,它是一个静态方法,因此您可以从任何您喜欢的地方调用它。正如 Anthony 所说,“当前”上下文取决于调用线程,因此您需要确保使用正确的线程。

        【讨论】:

        • 类和属性只能在网页中调用。所以我想我总是会从正确的线程中获取当前上下文。这是对的还是我错过了什么?
        • 应该没问题,只要你不做任何时髦的线程(例如在你的网页中使用线程池)。
        • 酷,不,我不是。干杯乔恩
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-13
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 2012-05-26
        • 2011-03-05
        • 1970-01-01
        相关资源
        最近更新 更多