我有一些遺留代碼訪問我們的數據庫。我想爲單元測試中的IoC/DI的每個類創建一個接口。C#:單元測試靜態類的DI
這些類中的所有方法都是靜態的。
當我嘗試通過VisualStudio「提取一個接口」時,它失敗並且說「無法提取接口:該類型不包含任何可以提取到接口的成員」。
有一些鏈接可以解釋爲什麼接口不應該有靜態方法here和here。
這個限制似乎主要是爲了支持多態性......我現在並不真正在意這些類,它們並不真正從任何東西(除了Object)繼承。
那麼,如何使用IoC來獲取我可以從中提取數據的對象?
我寧願不製作實例方法,因爲實例增加了工作集。
你不能「注入」靜態類 - 它們在編譯時綁定。如果你想使用注入,你必須注入實例。我建議克服你對「增加工作集」的恐懼,並處理這個問題,當它成爲問題時。 –
*「多態性[我]現在並不在乎。」*是的,你這樣做,因爲你會*想爲單元測試中的IoC/DI的每個類創建一個接口。「* –