Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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# 如何在包装类后面的非页面上获取会话信息或当前区域性信息?_C#_Asp.net - Fatal编程技术网

C# 如何在包装类后面的非页面上获取会话信息或当前区域性信息?

C# 如何在包装类后面的非页面上获取会话信息或当前区域性信息?,c#,asp.net,C#,Asp.net,我有一个带有按钮的主页面,这些按钮设置CultureInfo并将其存储在会话中: protected void RU_Click(object sender, ImageClickEventArgs e) { Session["MyCulture"] = CultureInfo.CreateSpecificCulture("ru-Ru"); Server.Transfer(Request.Url.LocalPath); } protected void USA_Cli

我有一个带有按钮的主页面,这些按钮设置CultureInfo并将其存储在会话中:

protected void RU_Click(object sender, ImageClickEventArgs e)
{
    Session["MyCulture"] = CultureInfo.CreateSpecificCulture("ru-Ru");
    Server.Transfer(Request.Url.LocalPath);     
}

protected void USA_Click(object sender, ImageClickEventArgs e)
{
    Session["MyCulture"] = CultureInfo.CreateSpecificCulture("en-AU");
    Server.Transfer(Request.Url.LocalPath);  
}
我在包装器类后面编写非页面,在这个类中,我需要从会话中获取这种文化。我尝试使用该类获取当前文化信息,如下所示:

(CultureInfo)HttpContext.Current.Session["MyCulture"]

但是
HttpContext.Current
为空!如何修复此问题?

如果您的类不是从Page或UserControl继承的,那么您可能应该将当前上下文作为参数传递给需要使用它的方法


另外,如果您的类是ASHX页面,那么您需要指示该页面实现。

我假设访问
HttpContent.Current的代码正在ASP.NET线程的Sperate线程上运行


如果是这种情况,则
HttpContent.Current
将不可用,因此最好将任何依赖对象(如当前区域性)传递到新线程,而不是依赖于对当前HttpContext对象的访问。

此代码很小……请进一步解释。这是不可能的“非页面隐藏包装类”?我有一个项目,用于在我的类解决方案中创建一个C#类库(.dll)(.NET Framework 3.5)。在一个类中,我尝试获取当前区域性信息。如何获取它?严格来说不是真的,但这不会有什么好处。我已更新了答案,以表明这可能是您应该做的事情(这样类就不会对执行它的上下文做出任何假设)。