view Implab/Components/App.cs @ 212:a01d9df88d74 v2

Added class Trace<T> to manage channels for individual classes, if SomeClass uses Trace<SomeClass> it sould be marked with TraceSourceAttribute
author cin
date Tue, 04 Apr 2017 12:04:05 +0300
parents b933ec88446e
children
line wrap: on
line source

using System;
using System.Collections.Generic;

namespace Implab.Components {
    /// <summary>
    /// Global application components and services.
    /// </summary>
    public static class App {
        readonly static ComponentContainer<object> _root = new ComponentContainer<object>();

        /// <summary>
        /// The container for application level components.
        /// </summary>
        /// <remarks>Pools of disposable objects can be placed here and they will be automatically
        /// disposed when application domain is unloaded.</remarks>
        public static ICollection<object> RootContainer {
            get { return _root; }
        }

        static App() {
            AppDomain.CurrentDomain.DomainUnload += (sender, e) => _root.Dispose();
        }
    }
}