我有一个使用 session 状态的 ASP.Net 项目,我想对我们如何访问 session 状态更严格一点,我对代码周围 float 的所有字符串不满意。我还需要知道何时在 session 状态中存储/更新特定值以跟踪该对象的最新值。
字符串问题使用常量很容易解决,但对跟踪没有帮助。将它们全部封装在一个类中很吸引人,但是我必须将 session 对象传递给那个类,这看起来有点乱
我正在考虑使用以下两个选项之一:
- session 对象上的扩展 getter 和 setter
- session 对象的扩展方法,用于返回带有 getter 和 setter 的类
第一个给了我语法:
var thing = Session.GetThing();
Session.SetThing(thing);
第二个给出:
var thing = Session.Wrapper().Thing;
Session.Wrapper().Thing = thing;
两者都有其吸引力,但我倾向于第二种。在理想的世界中,我希望能够做到这一点:
var thing = Session.Thing(); // easy to do
Session.Thing() = thing; // don't think it's possible
处理此问题的首选方法是什么?这些中的任何一个,换一种方式,还是我只是做错了?
最佳答案
您不必将 Session 传递给每个类(class),您可以:
public class State
{
public string Something
{
get { return HttpContext.Current.Session["Something"] as string; }
set { HttpContext.Current.Session["Something"] = value; }
}
}
我相信这是典型的方法。 HttpContext具有静态可用的 Current
属性。
关于c# - 在 ASP.Net 中包装 session 状态的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481473/