我在使用Unity和WPF時遇到了一些問題。該場景是我有一個遵循MVVM設計模式的WPF應用程序。 A有一個名爲ViewKDI的模塊。在這個模塊中,我有一個名爲ViewKDIService的服務,ViewKDIService服務使用另一個名爲UserService的服務。統一返回服務的新實例
每次我加載模塊ViewKDI我希望Unity返回ViewKDIService和UserService的新實例。
我已經把下面的外殼引導程序:
Container.RegisterType<IUserService, UserService>();
在ViewKDI模塊我已經把以下內容:
Container.RegisterType<IViewKDIService, ViewKDIService>();
每次ViewKDI模塊加載ViewKDIService構造函數被調用。但是,UserService構造函數只是第一次調用,這意味着我沒有獲得UserService的新實例。
我需要統一性給我一個UserService的新實例,以便我可以與應用程序的其餘部分分開管理此會話。
任何想法?
感謝 費薩爾
你能否提供更多關於何時解決每種類型的細節? IUserService是ViewKDIService的依賴項嗎? – 2009-12-11 16:45:56
我沒有明確地調用解決方案,我只是將接口放在我的ViewModel的構造函數中,然後讓Unity解決它們。 IUserService不依賴於IViewKDIService。 – Faisal 2009-12-11 16:59:45
查看哪些對象IUserService和IViewKDIService被注入以瞭解它們的生命週期會很有幫助。例如都注入到您的ViewModel或只是IUserService? – 2009-12-11 17:16:51