1
註冊一個運行時依賴在代碼我重構,我有以下情況:在溫莎城堡
void Plugin(IExternalService service)
{
var facade = new Facade(
new ExternalServiceWrapper(service),
new Dependency1(),
new Dependency2());
}
凡Dependency1
和Dependency2
是IDependency1
和IDependency2
實現。
如何將此轉換爲Windsor安裝程序中的註冊?我似乎無法想象我們如何將IExternalService
的實例傳遞給容器。
編輯我不控制插件的創建。我想用它作爲組合根來連接所有的依賴關係。
目前還不清楚你要完成的任務。你想讓容器調用Plugin方法,還是要從Plugin方法中調用容器? – 2011-05-21 15:41:08
我試圖讓'Facade'的所有依賴關係(實現'IFacade'解決了Windsor的問題。插件的入口點必須是我的組合根,它在運行時有時會發生,我不能控制它。 – 2011-05-21 15:56:50
所以其實你不會調用'新門面',而是'container.Resolve()'? –
2011-05-21 16:03:32