我有一個使用自定義UsernamePasswordValidator的WCF服務。驗證器需要訪問我的實體框架上下文。訪問WCF中的當前InstanceContext UsernamePasswordValidator
我想爲整個服務調用創建一個ObjectContext,然後在調用結束時銷燬/處理它。因此,我創建了一個提供此功能的單例靜態類,但是,現在發生的情況是,如果兩個服務調用併發發生,其中一個調用會處理單例。
我要麼保留對ObjectContext的本地引用,在這種情況下,使用它的第二個服務將它視爲已丟棄並引發錯誤,或者,我在任何需要它的地方將Singleton類放在一個包裝器屬性中,然後全部我的更改會被拋棄,因爲如果另一個調用已經處理了該對象,那麼我將獲得該對象的一個新實例。
所以基本上我的問題是如何實例化一個ObjectContext每個服務調用?
注意:實例需要在服務代碼和自定義UsernamePasswordValidator代碼中都可以訪問。
我不能只是在構造函數中使用它或使用using語句,因爲然後自定義UsernamePasswordValidator無法訪問它。有沒有辦法讓每個通話都有一個靜態類?這聽起來不可能,但是這是怎麼回事?我應該在會話中緩存對象嗎?
我的服務託管在IIS中。
UPDATE:
所以我釘下來到使用IExtension對象中的InstanceContext存儲狀態。但是,如何訪問UsernamePasswordValidator中的當前InstanceContext?
我已經擁有該屬性。我遇到的問題是在實際服務代碼和UsernamePasswordValidator代碼之間共享上下文。 – 2010-07-23 09:55:47