CSharp - 如何获取会话信息或者当前区域性信息?

  显示原文与译文双语对照的内容
0 0

我有 Main.Master 页面,带有设置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 是空的怎么解决? !

时间: 原作者:

0 0

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

此外,如果你的类是ASHX页,则需要指示该页实现了 System.Web. SessionState.IRequiresSessionState

原作者:
0 0

我假设访问 HttpContent.Current的代码是在spearate线程上运行到 ASP.NET 线程上的。

如果是这样,则 HttpContent.Current 将不可以用,因这里最好将任何依赖对象( 例如当前区域性) 传递给新线程,而不是依赖于当前对象。

原作者:
...