使用IDisposable清理ExcelInterop对象在我的公司中,发布ExcelInterop对象的常见方法是使用IDisposable,方法如下:Public Sub Dispose() Implements IDisposable.Dispose
If Not bolDisposed Then
Finalize()
System.GC.SuppressFinalize(Me)
End IfEnd SubProtected Overrides Sub Finalize()
_xlApp = Nothing
bolDisposed = True
MyBase.Finalize()End Sub哪里_xlApp以下列方式在构造函数中创建:Try
_xlApp = CType(GetObject(, "Excel.Application"), Excel.Application)Catch e As Exception
_xlApp = CType(CreateObject("Excel.Application"), Excel.Application) End Try客户端使用using-statement执行有关EXCEL互操作对象的代码。我们完全避免使用二点规则..现在,我开始研究如何重新分配(Excel)Interop对象,以及几乎所有关于它的讨论,比如如何正确清除excel互操作对象或释放Excel对象主要使用Marshal.ReleaseComObject(),没有一个使用IDisposable接口。我的问题是:使用IDisposable Interace来释放EXCEL互操作对象有什么缺点吗?如果是的话,这些残疾的优点是什么。
2 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
Koogra.IWorkbook workbook = Koogra.WorkbookFactory.GetExcel2007Reader("MyExcelFile.xlsx"); Net.SourceForge.Koogra.IWorksheet worksheet = workbook.Worksheets.GetWorksheetByName("Sheet1"); //This will invididually print out to the Console the columns A-J (10 columns) for rows 1-10.for (uint rowIndex = 1; rowIndex <= 10; rowIndex++){ for (uint columnIndex = 1; columnIndex <= 10; columnIndex++) { Console.WriteLine(worksheet.Rows.GetRow(rowIndex).GetCell(columnIndex).GetFormattedValue()); }}
- 2 回答
- 0 关注
- 425 浏览
添加回答
举报
0/150
提交
取消