可以說我有一個組件正在做一些Workbook對象,並且在那個方法體的中間某處我調用了另一個類的某個方法。 例如:COM對象excel互操作清理
public class MainComponent
{
public void MyMainMethod()
{
OtherComponent otherComponent = new OtherComponent();
Workbook document;
// some work with workbook object
// working with document and worksheet objects.
otherComponent.MethodCall(document);
// some work with workbook object and it's worksheets.
foreach(Worksheet sheet in document.Workheets)
// do something with sheet
}
}
public class OtherComponent
{
public void MethodCall(Workbook document)
{
string worksheetNames = "";
foreach(Worksheet sheet in document.Worksheets)
worksheetNames += sheet.Name;
Console.WriteLine(worksheetNames);
}
}
在那otherComponent.MethodCall(文件);我正在使用文檔,並且正在遍歷它的工作表。
編輯更具體的問題。我是否應該在文檔和其他Component.MethodCall(文檔)中的Worksheet上調用ReleaseCOMObject?
我從來沒有真正有什麼好的解釋,應該如何管理這個非託管代碼。 我真的很感激,如果有人可以向我解釋這一點。
通常,創建對象的方法應負責清理。在這種情況下,包含「清理」的內容有些模糊。你應該發佈初始化和清理代碼,以及更多關於你在做什麼的解釋,「以後可能會導致問題」。 – 2012-03-24 13:24:13