我有使用如何從不同的地方訪問同一個會話?
Session["Something"] = 1;
的景色,我有一個類庫項目中一類試圖讓使用
HttpContext.Current.Session["Something"]
會議此值,但它retuns null
。
public ActionResult Index()
{
Session["Something"] = 1;
var fromLib = (new MyLibClass()).GetSession("Something"); // null
var fromHere = Session["Something"]; // 1
}
// Class library project
public object GetSession(string key)
{
return HttpContext.Current.Session[key];
}
如何從會話中獲取值?或者有沒有辦法保存一個值並在另一個地方找回(沒有數據庫或系統文件)
我可以問'GetSession()'實際上是什麼?如果你可以直接從'HttpContext.Current.Session()'訪問,那麼就不需要定製的方法來訪問它。 – 2011-05-08 21:33:48
@rockin關鍵是它是一個非常簡單的例子,可以顯示問題所在。 – BrunoLM 2011-05-08 22:07:48
在網絡應用程序之外使用會話是個不好的做法,主要是因爲它使單元測試變得非常困難。如果這僅僅是一個例子,考慮說明你真正想做什麼,所以我們可以建議一個替代方案,比如在你的類庫中緩存,或者把這個「會話」邏輯移動到Web層的某個地方。 – RPM1984 2011-05-08 23:45:44