protected override void FreeUnManagedObjects() { if (this.Handle != default(IntPtr)) { LevelDBInterop.leveldb_close(this.Handle); } // it's critical that the database be closed first, as the logger and cache may depend on it. if (this._Cache != null) { this._Cache.Dispose(); } if (this._Comparator != null) { this._Comparator.Dispose(); } if (this._InfoLog != null) { this._InfoLog.Dispose(); } }