Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

60 lines
1.4 KiB

// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
namespace Squidex.Infrastructure
{
public abstract class DisposableObjectBase : IDisposable
{
private readonly object disposeLock = new object();
private bool isDisposed;
public bool IsDisposed
{
get
{
return isDisposed;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected void Dispose(bool disposing)
{
if (isDisposed)
{
return;
}
lock (disposeLock)
{
if (!isDisposed)
{
DisposeObject(disposing);
}
}
isDisposed = true;
}
protected abstract void DisposeObject(bool disposing);
protected void ThrowIfDisposed()
{
if (isDisposed)
{
throw new ObjectDisposedException(GetType().Name);
}
}
}
}