在C#中使用托管C ++包装器时正确使用IDisposable模式
我的C#类创建并使用包装(分配和使用)非托管C ++对象和资源的托管C ++对象。 Managed C ++类使用Destructor和Finalizer正确实现了IDisposable。 因此,看来我的C#类也应该实现IDisposable。 我想要在C#中遵循正确的IDisposable模式。
以下对我不清楚:
是的,你的C#类也应该实现IDisposable。 它的Dispose()方法应该简单地处理C ++ / CLI对象。 不需要终结器,你已经在你的包装中实现了一个。 你的包装器与包装操作系统资源的许多其他.NET类没有什么不同。
例如:
class Test : IDisposable {
private CppWrapper obj;
//...
public void Dispose() {
if (obj != null) {
obj.Dispose();
obj = null;
}
}
}
链接地址: http://www.djcxy.com/p/54491.html
上一篇: Correct use of IDisposable pattern when using Managed C++ wrapper in C#