我已经阅读了很多关于 System.AddIn(又名托管加载项框架)的内容。它允许您以不同的隔离模式激活加载项,包括单独的 AppDomain 或单独的进程。
我发现的大多数文章都暗示了进程隔离可用于实现应用程序可靠性这一事实,其中加载项可能会因未处理的异常而崩溃,但应用程序不会崩溃并且可以卸载有问题的加载项和继续。
我还没有找到一篇真正说明如何做到这一点的文章。我一直试图通过反复试验来弄清楚,但到目前为止,我尝试过的所有事情,如果加载项引发未处理的异常,主机应用程序就会崩溃。我让每个加载项都在自己的进程中运行,但似乎还有更多我不理解的难题。
是否可以使用 System.AddIn 创建一个主机,该主机可以在其加载项之一中存在未处理的异常?是否有代码示例或文章在某处说明了这一点?如果 System.AddIn 无法做到这一点,是否有另一种体系结构可以在 .NET 应用程序中实现这一点?