Beispiel #1
0
        /// <summary>
        /// UnSubscribe from a setting.
        /// </summary>
        /// <typeparam name="T1">The setting.</typeparam>
        /// <param name="myGraphDSSettingChangingEvent">The event handler.</param>
        /// <example>Subscribe&lt;ObjectCacheCapacitySetting&gt;(myGraphAppSettings_OnSettingChanging);</example>
        /// <returns></returns>
        public void UnSubscribe <T1>(GraphSettingChangingEvent myGraphDSSettingChangingEvent)
            where T1 : IGraphSetting, new()
        {
            var IGraphDSSetting = new T1();

            lock (_Settings)
            {
                if (_Settings.ContainsKey(IGraphDSSetting.SettingName) && _Settings[IGraphDSSetting.SettingName].IGraphDSSetting != null)
                {
                    _Settings[IGraphDSSetting.SettingName].GraphDSSettingChangingEvent -= myGraphDSSettingChangingEvent;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Subscribe to an setting. The event will be fired if the setting is changing.
        /// You need to subscribe to the defined setting <typeparamref name="T1"/> to make it known the the manager.
        /// </summary>
        /// <typeparam name="T1">The setting.</typeparam>
        /// <param name="myGraphDSSettingChangingEvent">The event handler.</param>
        /// <example>Subscribe&lt;ObjectCacheCapacitySetting&gt;(myGraphAppSettings_OnSettingChanging);</example>
        /// <returns></returns>
        public void Subscribe <T1>(GraphSettingChangingEvent myGraphDSSettingChangingEvent)
            where T1 : IGraphSetting, new()
        {
            var IGraphDSSetting = new T1();

            lock (_Settings)
            {
                if (!_Settings.ContainsKey(IGraphDSSetting.SettingName))
                {
                    _Settings.Add(IGraphDSSetting.SettingName, new CurrentSetting()
                    {
                        IGraphDSSetting             = IGraphDSSetting,
                        CurrentValue                = IGraphDSSetting.DefaultSettingValue,
                        GraphDSSettingChangingEvent = null
                    });
                }
                else if (_Settings[IGraphDSSetting.SettingName].IGraphDSSetting == null)                 // In case the setting was load from file
                {
                    _Settings[IGraphDSSetting.SettingName].IGraphDSSetting = IGraphDSSetting;
                }

                _Settings[IGraphDSSetting.SettingName].GraphDSSettingChangingEvent += myGraphDSSettingChangingEvent;
            }
        }