Mercurial > pub > ImplabNet
diff Implab/Disposable.cs @ 48:d9d794b61bb9 interactive logger
Interactive tracing
Improved working with tracing contexts
author | cin |
---|---|
date | Fri, 18 Apr 2014 12:34:45 +0400 |
parents | fe33f4e02ad5 |
children | 673947ce458a |
line wrap: on
line diff
--- a/Implab/Disposable.cs Thu Apr 17 18:49:36 2014 +0400 +++ b/Implab/Disposable.cs Fri Apr 18 12:34:45 2014 +0400 @@ -1,10 +1,14 @@ -using System; +using Implab.Diagnostics; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Web; namespace Implab { + /// <summary> + /// Объект, поддерживающий освобождение ресурсов. + /// </summary> public class Disposable : IDisposable { bool m_disposed; @@ -19,7 +23,16 @@ if (m_disposed) throw new ObjectDisposedException(this.ToString()); } - + /// <summary> + /// Переводит объект в состояние <c>Disposed</c> и вызывает событие <see cref="Disposed"/> + /// </summary> + /// <param name="disposing">Признак того, что нужно освободить ресурсы, иначе данный метод + /// вызван сборщиком мусора и нужно освобождать ТОЛЬКО неуправляемые ресурсы ТОЛЬКО этого + /// объекта.</param> + /// <remarks> + /// Данный метод осуществляет проверку того, что объект уже был освобожден, чтобы не вызывать + /// событие <see cref="Disposed"/>. Не поддерживает многопоточность. + /// </remarks> protected virtual void Dispose(bool disposing) { if (disposing && !m_disposed) { m_disposed = true; @@ -34,8 +47,11 @@ GC.SuppressFinalize(this); } + /// <summary> + /// Записывает сообщение об утечке объекта. + /// </summary> protected virtual void ReportObjectLeaks() { - Trace.TraceWarning("The object is marked as disposable but isn't disposed properly: {0}", this); + TraceLog.TraceWarning("The object is marked as disposable but isn't disposed properly: {0}", this); } ~Disposable() {