我有一个 Windows 工作流应用程序,它使用我为 COM 自动化编写的类。我正在使用 COM 从我的课程中打开 Word 和 Excel。
我目前正在我的 COM 助手中实现 IDisposable 并使用 Marshal.ReleaseComObject()。但是,如果我的工作流程失败,则不会调用 Dispose() 方法,并且 Word 或 Excel 句柄保持打开状态并且我的应用程序挂起。
这个问题的解决方案非常简单,但不仅仅是解决它,我想学习一些东西并深入了解使用 COM 的正确方法。我正在寻找“最佳”或最有效和最安全的方式来处理拥有 COM 句柄的类的生命周期。模式、最佳实践或示例代码会有所帮助。