我在课堂上有一个dynamic
COM 对象作为私有字段。我不确定它是否被认为是托管资源(GC 清理它)。
private dynamic _comConnector = null;
...
_comConnector = Activator.CreateInstance(Type.GetTypeFromProgID("SomeProgId"));
在实现 IDispose 时,我应该将其作为托管资源(仅在显式调用 Dispose() 时)还是作为本机资源(当也从终结器调用 Dispose(false) 时)清理它?
private void Dispose(bool disposing)
{
if (disposing)
{
// Free managed resources //
// --> Should I call Marshal.FinalReleaseComObject(_comConnector) here?
}
// Free unmanaged resources //
// --> Or maybe here?
}