##// END OF EJS Templates
improved tracing...
improved tracing added the application components container MTComponentContainer.AppContainer

File last commit:

r40:fe33f4e02ad5 default
r93:dc4942d09e74 v2
Show More
Component.cs
36 lines | 1.6 KiB | text/x-csharp | CSharpLexer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Implab {
/// <summary>
/// Компоненты являются состовными объектами, имеют детерминированный период жизни, автоматически освобождают ресурсы входящие в них.
/// </summary>
/// <remarks>Компонента управляет временем жизни включенных в нее компонент</remarks>
public class Component: Disposable {
LinkedList<IDisposable> m_components = new LinkedList<IDisposable>();
/// <summary>
/// Коллекция компонент, из которых состоит текущая компонента.
/// </summary>
public ICollection<IDisposable> Components {
get {
AssertNotDisposed();
return m_components;
}
}
/// <summary>
/// Освобождает компоненты, входящие в состав текущей компоненты.
/// </summary>
/// <param name="disposing">Признак того, что происходит освобождение ресурсов.</param>
protected override void Dispose(bool disposing) {
if (disposing) {
foreach (var item in m_components)
item.Dispose();
m_components.Clear();
}
base.Dispose(disposing);
}
}
}