DisposableObject.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace DapperORMCore.Domain.Infrastructure
  7. {
  8. /// <summary>
  9. /// 释放对象
  10. /// </summary>
  11. public abstract class DisposableObject : IDisposable
  12. {
  13. #region Finalization Constructs
  14. /// <summary>
  15. /// Finalize完成后释放代码
  16. /// </summary>
  17. ~DisposableObject()
  18. {
  19. this.Dispose(false);
  20. }
  21. #endregion
  22. #region Protected Methods
  23. /// <summary>
  24. /// 显式释放代码
  25. /// </summary>
  26. /// <param name="disposing"></param>
  27. protected abstract void Dispose(bool disposing);
  28. /// <summary>
  29. /// 显式释放
  30. /// </summary>
  31. protected void ExplicitDispose()
  32. {
  33. this.Dispose(true);
  34. GC.SuppressFinalize(this);
  35. }
  36. #endregion
  37. #region IDisposable Members
  38. /// <summary>
  39. /// 显式释放
  40. /// </summary>
  41. public void Dispose()
  42. {
  43. this.ExplicitDispose();
  44. }
  45. #endregion
  46. }
  47. }