Итак, у меня есть объект C ++ / CLI, который содержится внутри объекта C #.Я вызываю dispose для моего объекта C ++ / CLI, и у меня есть точки останова в деструкторе и финализаторе C ++ / CLI.
Я знаю, что .NET должен автоматически сгенерировать Dispose для объектов CLI и поместить туда деструктор,но моя точка останова в деструкторе просто не получила удара.Может кто-нибудь объяснить, что происходит со мной, потому что я не смог найти документацию этого поведения.
C #
public void Dispose()
{
foreach (var wrapper in m_items)
{
var disposable = wrapper.Data as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
C ++ / CLI
public ref class ClassA: System::IDisposable {
...
ClassA::~ClassA()
{
// Clean up code
}
ClassA::!ClassA()
{
// Clean up code
}
}
Я извиняюсь, если на этот вопрос уже был дан ответ, но я попытался и не смог найти его при переполнении стека.