我正在使用Autofac在我的應用程序中處理依賴注入。然而,我有一個組件在運行時做了一些反射魔術,我不知道它在編譯時需要什麼依賴。使用Autofac作爲服務定位器
通常情況下,我只想讓這個組件直接引用Container並解決它想要的任何內容。但是,實例化此類的類沒有對容器的引用。
實際上,我的組件依賴於Autofac。我寧願鬆散耦合,但在這裏似乎不是一種選擇。有沒有辦法(在構造函數的參數,或使用屬性注入,或任何!)Autofac給我在我的構造函數容器的引用?或者,有沒有更好的方法讓Autofac爲我提供一個可以解決任何問題的魔術服務定位器對象?
雖然看到組件正在做什麼「魔術」,但會很有趣。也許除了服務定位器模式之外,還有其他方法。你能用一些代碼更新嗎? –
我可以很好地描述它。隨着消息通過總線進入,代碼確定消息使用某些元數據的類型,然後構造所述類型。然後它需要使用Autofac查找所有'IConsume'的實現者(其中'type'是來自元數據的類型),然後調用它的Consume方法。 –
你的意思是:http://kozmic.pl/2010/03/11/advanced-castle-windsor-ndash-generic-typed-factories-auto-release-and-more/ –