The System.IDisposable interface is not implemented correctly. Possible reasons for this include:
IDisposable is reimplemented in the class. Finalize is overridden again. Dispose() is overridden. The Dispose() method is not public, sealed, or named Dispose. Dispose(bool) is not protected, virtual, or unsealed. In unsealed types, Dispose() must call Dispose(true). For unsealed types, the Finalize implementation does not call either or both Dispose(bool) or the base class finalizer.