【发布时间】:2014-07-10 15:26:14
【问题描述】:
我不习惯 COM,但我需要使用 C# 创建一个 .NET 组件,以编译为用于另一个程序套件的 dll,所以我将其作为 COM 对象(注册 COM 互操作和程序集)对 COM 等可见。)
假设我有我的接口类:
using System.Runtime.InteropServices;
namespace Test
{
public interface IFoo
{
void method1(parameter1);
void method2 (parameter2);
}
[ComVisible(true),ClassInterface(ClassInterfaceType.None)]
public class myname : IFoo
{
FooClass class;
public myname()//Constructor
{
}
public void method1(parameter1)
{
class = new FooClass();
class.Method1(parameter1);
}
}
}
在此之后,我编译它并使用 regasm 在另一台计算机上注册 dll。我运行它,但是这个应用程序消耗大量内存并且永远不会释放自己,有谁知道释放/销毁它的方法吗?
问题是如何释放内存使用量?提前致谢
【问题讨论】:
-
我会尝试 Marshal.FinalReleaseComObject; (顺便说一句:可编译的代码可能会更好......)