消息订阅者封装类
Esempio n. 1
0
        public void Run(Object sender, MsgEventArgs args)
        {
            if (appEventHandler != null)
            {
                appEventHandler(sender, args);
            }

            #region 去除那些只绑定一次处理事件的对象

            for (int i = 0; i < Receivers.Count; i++)
            {
                try
                {
                    MsgReceiver item = Receivers[i];

                    if (item == null)
                    {
                        continue;
                    }

                    if (item.IsOnce)
                    {
                        AppEventHandler -= item.appEventHandler;
                        Receivers.Remove(item);
                    }
                }
                catch
                {
                    Console.WriteLine("去除接受者对象列表中内容错误!");
                }
            }


            #endregion
        }
Esempio n. 2
0
 public void RemoveListener(MsgReceiver receiver)
 {
     for (int i = 0; i < Receivers.Count; i++)
     {
         MsgReceiver item = Receivers[i];
         if (item.ReceiverObj == receiver.ReceiverObj)
         {
             AppEventHandler -= item.appEventHandler;
             Receivers.Remove(item);
             return;
         }
     }
 }
Esempio n. 3
0
        public void RemoveListener(string msgType, EventHandler <MsgEventArgs> func, object _receiver)
        {
            if (eventsList.ContainsKey(msgType) == false)
            {
                return;
            }

            MsgEventProvider msgEventProvider = eventsList[msgType];

            #region 构建消息接受者对象
            MsgReceiver receiver = new MsgReceiver();
            receiver.IsOnce          = true;
            receiver.ReceiverObj     = _receiver;
            receiver.appEventHandler = func;
            #endregion

            msgEventProvider.RemoveListener(receiver);
        }
Esempio n. 4
0
        public void AddListener(string msgType, EventHandler <MsgEventArgs> func, object _receiver, bool isOnce)
        {
            if (eventsList.ContainsKey(msgType) == false)
            {
                MsgEventProvider _msgEventProvider = new MsgEventProvider(msgType);
                eventsList.Add(msgType, _msgEventProvider);
            }

            MsgEventProvider msgEventProvider = eventsList[msgType];

            #region 构建消息接收对象
            MsgReceiver receiver = new MsgReceiver();
            receiver.IsOnce          = isOnce;
            receiver.ReceiverObj     = _receiver;
            receiver.appEventHandler = func;
            #endregion

            msgEventProvider.AddListener(receiver);
        }
Esempio n. 5
0
        public void RemoveListener(string msgType, EventHandler<MsgEventArgs> func,object _receiver)
        {
            if (eventsList.ContainsKey(msgType) == false)return;

            MsgEventProvider msgEventProvider = eventsList[msgType];

            #region 构建消息接受者对象
            MsgReceiver receiver = new MsgReceiver();
            receiver.IsOnce = true;
            receiver.ReceiverObj = _receiver;
            receiver.appEventHandler = func;
            #endregion
           
            msgEventProvider.RemoveListener(receiver);
        }
Esempio n. 6
0
        public void AddListener(string msgType,EventHandler<MsgEventArgs> func, object _receiver,  bool isOnce)
        {
            if (eventsList.ContainsKey(msgType)==false)
            {
                MsgEventProvider _msgEventProvider = new MsgEventProvider(msgType);
                eventsList.Add(msgType,_msgEventProvider);
            }

            MsgEventProvider msgEventProvider = eventsList[msgType];

            #region 构建消息接收对象
            MsgReceiver receiver = new MsgReceiver();
            receiver.IsOnce = isOnce;
            receiver.ReceiverObj = _receiver;
            receiver.appEventHandler = func;
            #endregion
           
            msgEventProvider.AddListener(receiver);
        }
Esempio n. 7
0
 public void RemoveListener(MsgReceiver receiver)
 {
     for (int i = 0; i < Receivers.Count; i++)
     {
         MsgReceiver item = Receivers[i];
         if (item.ReceiverObj == receiver.ReceiverObj)
         {
             AppEventHandler -= item.appEventHandler;
             Receivers.Remove(item);
             return;
         }
     }
 }
Esempio n. 8
0
 public void AddListener(MsgReceiver receiver)
 {
     Receivers.Add(receiver);
     AppEventHandler += receiver.appEventHandler;
 }
Esempio n. 9
0
 public void AddListener(MsgReceiver receiver)
 {
     Receivers.Add(receiver);
     AppEventHandler += receiver.appEventHandler;
 }