使用IDisposable清理ExcelInterop對象在我的公司中,發(fā)布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以下列方式在構(gòu)造函數(shù)中創(chuàng)建:Try
_xlApp = CType(GetObject(, "Excel.Application"), Excel.Application)Catch e As Exception
_xlApp = CType(CreateObject("Excel.Application"), Excel.Application) End Try客戶端使用using-statement執(zhí)行有關(guān)EXCEL互操作對象的代碼。我們完全避免使用二點規(guī)則..現(xiàn)在,我開始研究如何重新分配(Excel)Interop對象,以及幾乎所有關(guān)于它的討論,比如如何正確清除excel互操作對象或釋放Excel對象主要使用Marshal.ReleaseComObject(),沒有一個使用IDisposable接口。我的問題是:使用IDisposable Interace來釋放EXCEL互操作對象有什么缺點嗎?如果是的話,這些殘疾的優(yōu)點是什么。
2 回答

德瑪西亞99
TA貢獻1770條經(jīng)驗 獲得超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 關(guān)注
- 462 瀏覽
添加回答
舉報
0/150
提交
取消