using System; namespace Mtp2Dav.WebDAVSharp.Server._1d2086a502937936ebc6bfe19cfa15d855be1c31 { /// /// This abstract base class implements the pattern in a reusable way. /// public abstract class WebDavDisposableBase : IDisposable { private bool _isDisposed; /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); _isDisposed = true; } /// /// This method will ensure that the object has not been disposed of through a call /// to /// , and if it has, it will throw /// /// /// The object has been disposed of. protected void EnsureNotDisposed() { if (_isDisposed) throw new ObjectDisposedException(GetType().FullName); } /// /// Releases unmanaged and - optionally - managed resources /// /// /// true to release both managed and unmanaged resources; false to release only /// unmanaged resources. /// protected abstract void Dispose(bool disposing); } }