我正在用C#編寫WCF服務。最初,我的實現有一個靜態構造函數來執行一次性初始化,但正在完成的一些初始化可能(暫時)失敗。類型初始值設定項(靜態構造函數)異常處理
看起來靜態構造函數只被調用一次,即使第一次(失敗)嘗試引發異常?任何隨後嘗試實例化我的類都將立即失敗,並且TypeInitializationException
未實際執行代碼。
C#語言規範聲明最多隻會調用一次靜態構造函數,但基本上這會導致出現一個例外,即使您捕獲它,也無法恢復該錯誤?
我在這裏錯過了什麼嗎?我想我應該將任何遠程危險的東西移動到服務的實例構造函數中,然後手動檢查類初始化是否已經成功完成了?
這實際上是我現在有,除了我使用一些雙重檢查鎖定和我的'_initialized'布爾是'易揮發的(不應該沒有雙重檢查鎖定是必要的) – Thorarin 2009-08-25 14:18:05