comparison Implab/Component.cs @ 40:fe33f4e02ad5

improved tracing added text listeners (file,console)
author cin
date Tue, 15 Apr 2014 17:52:09 +0400
parents
children
comparison
equal deleted inserted replaced
39:6498078ae368 40:fe33f4e02ad5
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5
6 namespace Implab {
7 /// <summary>
8 /// Компоненты являются состовными объектами, имеют детерминированный период жизни, автоматически освобождают ресурсы входящие в них.
9 /// </summary>
10 /// <remarks>Компонента управляет временем жизни включенных в нее компонент</remarks>
11 public class Component: Disposable {
12 LinkedList<IDisposable> m_components = new LinkedList<IDisposable>();
13
14 /// <summary>
15 /// Коллекция компонент, из которых состоит текущая компонента.
16 /// </summary>
17 public ICollection<IDisposable> Components {
18 get {
19 AssertNotDisposed();
20 return m_components;
21 }
22 }
23
24 /// <summary>
25 /// Освобождает компоненты, входящие в состав текущей компоненты.
26 /// </summary>
27 /// <param name="disposing">Признак того, что происходит освобождение ресурсов.</param>
28 protected override void Dispose(bool disposing) {
29 if (disposing) {
30 foreach (var item in m_components)
31 item.Dispose();
32 m_components.Clear();
33 }
34 base.Dispose(disposing);
35 }
36 }
37 }