2011-07-10 38 views
1

我正在使用Unity進行依賴注入,並擁有一個類Config,該實現實現了使用Unity容器註冊的IConfig。更新使用Unity容器註冊的實例

IConfiguration config = new Configuration(); 

unityContainer.RegisterInstance<IConfiguration>(config); 

當應用程序正在運行,並且用戶加載保存的配置,我想更新存儲在Unity與加載的配置對象的實例。例如。像下面的僞代碼

IConfiguration loadedConfig = FileLoadService.Load(filepath); 
unityContainer.Instance = loadedConfig; 

這可能嗎?

回答

1

你可以只通過調用

unityContainer.RegisterInstance<IConfiguration>(config); 

重新註冊的實例,但一個更好的解決辦法是改變你的FileLoadServce.Load(filepath)邏輯,以便更新現有的配置對象的值。這個解決方案的好處是,已經解析的引用(通過調用unityContainer.Resolve<IConfiguration>())也更新了此配置對象。

+0

正如我在發佈後不久發現答案的方式一樣。感謝有關更新已解決的參考資料的提示。 – Kildareflare