我有一些模塊在關閉時需要做一些整理工作,但看起來PRISM/Unity並不尊重IDisposable接口。有沒有人有任何建議,我如何才能得到這個工作?PRISM/Unity IDisposable
1
A
回答
2
我經歷了同樣的問題,解決了這個問題是這樣的:
首先我創建一個自定義事件,讓我信號我模塊容器關閉:
public class ApplicationExitEvent : CompositePresentationEvent<string> { }
然後在我的引導程序我實現IDisposable,在我的Dispose觸發事件()方法:
public void Dispose()
{
var eventAggregator = Container.Resolve<IEventAggregator>();
if (eventAggregator != null)
{
eventAggregator.GetEvent<ApplicationExitEvent>().Publish("");
}
}
然後在我的模塊的初始化()方法,我訂閱了這個事件:
EventAggregator.GetEvent<ApplicationExitEvent>().Subscribe((o) => Dispose(), true);
並把我需要的清理代碼放在我的模塊的Dispose方法中。
希望這會有所幫助。
0
很可能你的模塊沒有被處理,因爲它們在容器中被註冊爲單件(共享)組件。
Dispose()
您的容器中手動上Application.Exit
,和所有一次性模塊(從這個容器的其他解決共享的一次性部件)應該稱他們IDisposable.Dispose()
方法。
相關問題
- 1. IDisposable Winform
- 2. Impementing IDisposable
- 3. IDisposable鏈
- 4. 當了IDisposable被傳遞到父IDisposable的
- 5. 實現了IDisposable
- 6. 嘲笑IDisposable類
- 7. IDisposable和COM
- 8. IDisposable和ReaderWriterLockSlim
- 9. IDisposable和WCF
- 10. IDisposable的問題
- 11. 爲IDisposable的
- 12. EntLib IDisposable轉換
- 13. IDisposable示例
- 14. System :: IDisposable woes
- 15. 與IDisposable混淆
- 16. WebControls和IDisposable
- 17. 使用IDisposable
- 18. Winforms處置IDisposable
- 19. IDbTransaction和IDisposable
- 20. StructureMap InstanceScope.Hybrid和IDisposable
- 21. Tricky IDisposable問題
- 22. C#類,subclases,IClonable,IDisposable
- 23. 試圖理解IDisposable
- 24. Autofac和IDisposable接口
- 25. EntityFramework給IDisposable錯誤
- 26. WCF Proxy + DI(Ninject)+ IDisposable
- 27. 清理IDisposable問題
- 28. Coverity,Enumerable.Where(this ...)和IDisposable
- 29. 使用SmtpClient和IDisposable
- 30. MonoTouch和IDisposable模式
我的回答對你有幫助嗎? – Dutts 2013-05-09 15:27:33