這是這個問題的細微差異:Possible to use a singleton with a non-default constructor in C#?可能在C#中使用帶有非默認構造函數的單例嗎?
我有一個類,它的構造函數需要參數。我想做這個單例,使得參數在初始化單例時被採用,因此在每次實例被檢索時不需要被傳遞。
我的解決方案(這不是優雅),這是一個CreateInstance()
靜態方法,它接受參數並構造單例實例。然後我會有另一個靜態方法GetInstance()
這將無參數來獲得單例實例。在代碼中,我需要在調用GetInstance之前確保邏輯調用CreateInstance
。但是,我無法在編譯時強制執行此操作。不過,如果在CreateInstance
之前調用它,則可以在運行時檢查GetInstance
中的異常。
是否有無論如何我可以通過編譯時執行來實現這種行爲?或者至少,有沒有更好的方法來做同樣的事情?
@ user691226你應該爲你如何做到這一點已經,我可能有一些指針。 – msarchet 2011-04-04 14:22:39