【发布时间】:2010-09-09 16:55:00
【问题描述】:
我正在与我的 c# 项目中名为 CSCCOM 的自定义 COM 组件进行交互。
我用 IDisposable 包装它,如下所示:
Form1.cs
try {
using (CSCCOMWRAP CSC = new CSCCOMWRAP()) {
CSCCodeList CSCL = new CSCCodeList(CSC);
comboBox1.DataSource = CSCL.List;
Marshal.ReleaseComObject(CSCL);
}
}
catch (COMException ex) { }
CSCCodeList.cs
try {
var cscl = CSC.GetCodes();
for (int i = 1; i <= cscl.Count(); i++) {
object item = i;
var code = cscl.Item(ref item);
List.Add(new CSCCode((string)code.Name, Convert.ToString(code.Code)));
}
}
catch (Exception ex) { );
程序执行后,我仍然在ProcessExplorer's 下部窗格的 DLL 视图中看到 CSCCOM.dll 两次。
这表明由于某种原因我的 COM dll 没有从系统中清除。
【问题讨论】:
-
您删除这个问题有什么特别的原因吗?通常只会删除无用的问题,而这个问题显然不是无用的。
-
谢谢@mmyers。请问你的名字是什么?
-
@mmyers:我同意。但我认为我过度暴露了我的代码。但我觉得我应该编辑它而不是删除它。感谢您对我的这一行为的批评 :) 我真的为此向 MrDosu 道歉。
-
由于这是一个老问题,一些反馈给你 - 希望对你有帮助,月亮!我注意到你的问题很健谈,有时可以通过使它们更简洁来简化它们。这节省了读者(需要阅读的内容更少)和编辑(需要修剪的聊天内容)的时间。
-
以下都可以去掉,一般来说:谢谢,提前致谢,问候,sig blocks,表示你需要帮助,希望人们可以帮助,敦促人们帮助,表示帮助会很好,担心问题太简单,说你不理解问题等等。它们要么是显而易见的,要么是不必要的。短而甜在这里很好
:-)。