Пример #1
0
 public void UnSubscribe(IServiceObserver observer)
 {
     if (__observers.Contains(observer))
     {
         __observers.Remove(observer);
     }
 }
Пример #2
0
 public void Subscribe(IServiceObserver observer)
 {
     if (__observers.Contains(observer))
     {
         return;
     }
     __observers.Add(observer);
 }
        /// <summary>启动</summary>
        public static void Start()
        {
            try
            {
                ServicesConfiguration configuration = ServicesConfigurationView.Instance.Configuration;

                foreach (ServiceObserverConfigurationElement observer in configuration.Observers)
                {
                    IServiceObserver serviceObserver = (IServiceObserver)Assembly.Load(observer.TypeName.Substring(observer.TypeName.IndexOf(",") + 1).Trim()).CreateInstance(observer.TypeName.Substring(0, observer.TypeName.IndexOf(",")).Trim(), false, BindingFlags.Default, null, new object[] { observer.Name, observer.Args }, null, null);

                    EventLogHelper.Information("正在创建监听器【" + observer.Name + "】。");

                    if (serviceObserver == null)
                    {
                        EventLogHelper.Error(string.Format("监听器【{0}】初始化类型【{1}】失败,请确认配置是否正确。", observer.Name, observer.TypeName));
                    }
                    else
                    {
                        serviceObserver.Start();

                        serviceObservers.Add(serviceObserver);
                    }
                }
            }
            catch (Exception ex)
            {
                EventLogHelper.Error(ex.ToString());

                throw ex;
            }

            // -------------------------------------------------------
            // 设置定时器
            // -------------------------------------------------------

            timer.Enabled = true;

            timer.Interval = ServicesConfigurationView.Instance.TimerInterval * 1000;

            timer.Elapsed += delegate(object sender, ElapsedEventArgs e)
            {
                ServiceObserverManagement.Run();
            };

            timer.Start();
        }
Пример #4
0
 public void RemoveObserver(IServiceObserver observer)
 {
     _observers.Remove(observer);
 }
Пример #5
0
 public void AddObserver(IServiceObserver observer)
 {
     _observers.Add(observer);
 }