可以说我有一个组件正在做一些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