Mercurial > pub > ImplabNet
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 } |