我在Web服務中實例化了一個類,該服務在靜態成員中持有某些資源。如果我不是靜態地堅持這些資源,我可能會通過一些IDisposable對象訪問它們,我可以在Dispose上釋放這些資源。不管是否堅持這個會話是一個好主意,當靜態解構類型時,.NET是否提供了任何方式來調用任何清理代碼?Static Deconstructor
請不要回答這個問題與任何「停止控制靜態成員變量資源」的問題。我理解靜態持有這些信息的缺點,並願意接受後果(我們正在使用它將處理時間從58小時減少到4小時,以進行一些批處理)。具體問題是:鑑於這種情況,有沒有好的方法來清理這些資源?
編輯: 我知道這個類將繼續存在於其餘的過程中,但是對於靜態構造函數,當您將該類型加載到內存中時,.NET爲您提供了一些機會。你可以在另一端做任何事嗎?
什麼時候將靜態類型解構? – haiyyu 2012-02-07 19:16:08
@haiyyu - 這是一個很好的問題,我不知道。 – LJM 2012-02-07 19:17:19
這聽起來像你*不*真正理解使用這樣的靜態變量的缺點,因爲缺點之一是「他們的一生是AppDomain的生命週期」......我會調查你是否可以將其綁定到Web服務生命週期的一部分,仍然避免靜態成員。 – 2012-02-07 19:22:25