我正在开发一个包含其他团队开发的模块的应用程序,我正在使用MEF托管它。 问题是,当托管模块有异常时,它会折叠我的应用程序。
显而易见的解决方案是,托管模块的开发团队将捕获所有异常,但它没有发生,所以我必须确保自己。
我的想法:
1)创建2个独立的GUI线程。有可能吗?
2)将托管模块作为单独的.exe文件运行,但在我的应用程序中以某种方式托管它。
任何帮助将不胜感激。
答案 0 :(得分:0)
我认为最好的方法是设置一些测试来验证您从其他团队使用的模块是否适用于您的目的。
除了这种显而易见但耗时的方法之外,您还可以将事件处理程序附加到Application.DispatcherUnhandledException,并优雅地处理导入模块中的异常。您应该能够在事件args的Exception.Source属性中找到异常的来源。
答案 1 :(得分:0)