C#使用Microsoft.Office.Interop.Excel操作后Excel对象的释放问题
使用C#进行Excel开发时,使用代理模式后造成Excel的对象释放不掉的问题,代码如下:
public class ExcelHelper : IDisposable { public ExcelHelper() { this._application = new myExcel.Application(); this._application.Visible = false; this._workbooks = this._application.Workbooks; } public Microsoft.Office.Interop.Excel.Workbook Open(string filePath) { this._workbooks.Open(filePath); } } public partial class ExcelHelper : IDisposable { public ExcelHelper() { this._application = new comExcel.Application(); this._application.Visible = false; this._application.DisplayAlerts = false; this._application.AlertBeforeOverwriting = false; this._workbooks = this._application.Workbooks; } public WorkBook CreateWorkBook(string filePath) { return new WorkBook(this._workBooks.Open(filePath)); } } public class WorkBook { private Microsoft.Office.Interop.Excel.Workbook workBook; internal readonly object missing = System.Reflection.Missing.Value; private WorkBook() { } internal WorkBook(Microsoft.Office.Interop.Excel.Workbook _workBook) { this.workBook = _workBook; } }