避免应用程序中模块的异常

时间:2011-03-03 09:06:39

标签: c# .net wpf design-patterns architecture

我正在开发一个包含其他团队开发的模块的应用程序,我正在使用MEF托管它。 问题是,当托管模块有异常时,它会折叠我的应用程序。

显而易见的解决方案是,托管模块的开发团队将捕获所有异常,但它没有发生,所以我必须确保自己。

我的想法:

1)创建2个独立的GUI线程。有可能吗?

2)将托管模块作为单独的.exe文件运行,但在我的应用程序中以某种方式托管它。

任何帮助将不胜感激。

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为最好的方法是设置一些测试来验证您从其他团队使用的模块是否适用于您的目的。

除了这种显而易见但耗时的方法之外,您还可以将事件处理程序附加到Application.DispatcherUnhandledException,并优雅地处理导入模块中的异常。您应该能够在事件args的Exception.Source属性中找到异常的来源。

答案 1 :(得分:0)

首先,您应该实施Application.DispatcherUnhandledException活动,有关详细信息,请点击here

完成此操作后,您应该与其他团队讨论,以提高其模块的稳健性。

修改

或者您可以按照approach进行操作。但我会尝试提高稳健性。