所以我在 C# 对象中保存了一个 C++/CLI 对象。我在我的 C++/CLI 对象上调用 dispose,我在 C++/CLI 析构函数和终结器中都有一个断点。
我知道 .NET 应该为 CLI 对象自动生成一个 Dispose 并将析构函数放在那里,但我在析构函数中的断点只是没有被击中。有人能解释一下我的情况吗,因为我找不到任何关于这种行为的文件。
C#
public void Dispose()
{
foreach (var wrapper in m_items)
{
var disposable = wrapper.Data as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
C++/命令行界面
public ref class ClassA: System::IDisposable {
...
ClassA::~ClassA()
{
// Clean up code
}
ClassA::!ClassA()
{
// Clean up code
}
}
如果这个问题已经得到回答,我深表歉意,但我已经尝试过,但在堆栈溢出时找不到它。
小唯快跑啊
相关分类