我目前有一種類型,我注入到我的控制器,用於獲取和設置會話數據。消除靜態屬性 - 我可以使用哪些模式?
我使用這個,所以我可以獲得相關的會話信息爲_sessionData.Username
而不是使用Session["username"]
。
我想在所有的視圖中使用這個會話信息和而以前這通過使SessionData成員,而不是靜態的SessionData類注射到我的控制器做到了這一點。
我想避免使用靜態成員以及具有與對象傳遞給每個控制器中圖。
什麼模式最適合這種類型的場景?你如何解決這個問題?
我更喜歡在會話中確切地知道我可以訪問的內容,而不是使用魔術鍵字符串。我的SessionData類幾乎完成了你上面的方法。問題是,如何在不使其靜態的情況下在我的視圖中使用它? – 2012-04-09 11:13:13
@JamieDixon對不起,我錯過了,並更新了我的答案。 – 2012-04-09 11:26:39
謝謝賈斯汀。到目前爲止,我所知道的所有解決方案似乎都非常優雅。訪問靜態類成員,使用魔術字符串直接訪問會話對象,在視圖中創建對象。必須有一種更優雅的方式來訪問大量視圖中的共享信息。也許使用基本控制器將自定義Session類插入到每個請求的視圖包中。 – 2012-04-09 11:37:28