2014-01-11 37 views
2

所以,我創建一個類庫,處理諸如用戶名,密碼等,我想這樣做,這樣我就可以參考這個庫,我的任何網絡應用程序,而不必重寫連續用戶信息的一部分用戶信息。如何訪問類庫中的HttpContext.Current.Session?

在,用戶信息類庫,我要處理的登錄。我之前在app_code中使用過HttpContext.Current.Session,這是web項目的一部分。但是,當我嘗試在我的類庫中使用它時(即使在using System.Web中)它會引發編譯錯誤,指出在此上下文中不存在HttpContext。我怎樣才能訪問它?

回答

8

當創建一個實用型類,它使用類似的HttpContext的依賴關係的作品,最好的辦法是或者通過構造函數或方法調用傳遞上下文或會話進級。這樣,對於你的班級的消費者來說,它需要這個對象才能發揮作用。這也可以讓你單獨測試你的班級。

更妙的是,如果您正在使用具有基本類型的幾個特定屬性的工作,那麼你可以接受這些屬性作爲輸入。這樣,您就不會在實用程序庫的UI框架上創建任何依賴關係。

+0

這是一個好主意。但是,即使作爲參數,我是否仍然需要訪問HttpContext?我最大的問題是代碼沒有獲得對HttpContext的引用。 – ScubaSteve

+0

你的意思是說,當你聲明參數時它不能識別這個類型?檢查以確保您沒有將客戶端配置文件定位爲框架版本。它不會有System.Web。 – Jason

+0

沒錯,它不能識別類型。它不針對客戶端配置文件,並且可以訪問System.Web。但是,所有的System.Web有參考的是:System.Web..AspNetHostingPermission,System.Web.AspNetHostingPermissionAttribute和System.Web.AspNetHostingPermissionLevel。 – ScubaSteve