我已經使用簡單注入器的依賴注入。現在我正在嘗試實施財產注入,但help document沒有什麼幫助。使用簡單注射器進行靜態類別的注入
任何人都可以用簡單的例子解釋屬性注入如何工作?
我想在一個Web Project的Utility類中使用它,而不是在控制器中使用它。該類方法是靜態的。
我已經使用簡單注入器的依賴注入。現在我正在嘗試實施財產注入,但help document沒有什麼幫助。使用簡單注射器進行靜態類別的注入
任何人都可以用簡單的例子解釋屬性注入如何工作?
我想在一個Web Project的Utility類中使用它,而不是在控制器中使用它。該類方法是靜態的。
該文檔沒有解釋如何注入靜態屬性,因爲這在簡單注入器中不受支持。
靜態屬性通常是一個壞主意,因爲它們妨礙可測試性,導致Temporal Coupling,並且可能導致Captive Dependencies。
如果需要靜態屬性,則必須自己注入依賴關係。您可以在Composition Root之後執行此操作,即在您完成對容器的所有註冊之後。
例子:
var container = new Container();
// Make registrations to container here:
container.Verify();
Utility.MyStaticProperty = container.GetInstance<IDependency>();
在正常情況下,簡單的噴油器將檢測這些類型的Lifestyle Mismatches,但不能這樣做,當你自己注射此屬性。
什麼不明確解釋?它解釋了其他行爲的行爲,爲什麼默認情況下沒有啓用它,以及如何覆蓋它。你的課是靜態還是你想調用的方法?如果是班級,那麼我認爲你沒有注入的可能性。也許你應該添加它作爲你的控制器的構造器注入的一部分? – Icepickle
該方法是靜態的。這個類方法直接從Layout中調用,所以沒有控制器在圖片中。 – Dhwani
這將是很好的更新你的問題,並提供更多的上下文。顯示你的用例,顯示你想注入依賴的類。描述那個依賴是什麼。顯示你打算如何使用這個屬性。 – Steven