Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态方法中的HttpContext.Current.Response_C#_Static Methods_Httpcontext - Fatal编程技术网

C# 静态方法中的HttpContext.Current.Response

C# 静态方法中的HttpContext.Current.Response,c#,static-methods,httpcontext,C#,Static Methods,Httpcontext,在静态类中有以下静态方法。我的问题是在静态方法中使用HttpContext.Current.Response安全吗?我想100%确保它是线程安全的,并且只与调用线程关联。。有人知道答案吗 public static void SetCookie(string cookieName, string cookieVal, System.TimeSpan ts) { try { HttpCookie cookie =

在静态类中有以下静态方法。我的问题是在静态方法中使用HttpContext.Current.Response安全吗?我想100%确保它是线程安全的,并且只与调用线程关联。。有人知道答案吗

    public static void SetCookie(string cookieName, string cookieVal, System.TimeSpan ts)
    {
        try
        {
            HttpCookie cookie = 
                new HttpCookie(CookiePrefix + cookieName) 
                    {Value = cookieVal, Expires = DateTime.Now.Add(ts)};
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
        catch (Exception)
        {
            return;
        }
    }

Current是静态的,因此从静态方法调用它的事实与此无关。与此相关的是HTTPContext.Current的实现方式,它返回当前线程的HTTP上下文(如果存在)。

不清楚线程安全的确切含义。是,
HttpContext.Current
返回与当前线程关联的
HttpContext
对象。请注意,如果在当前处理请求的线程之外的线程上调用函数(例如,在异步函数调用中),则无法访问所需的
HttpContext
对象


另一种方法是将上下文对象作为参数传递给函数。

是的,这非常安全。Current将从正在执行的线程获取当前HttpContext


这是一种常见的技术,使您不必像“流浪汉数据”一样传递上下文对象。

非常好,我想是这样。。。我不想在所有方法周围传递上下文。