Exemplo n.º 1
0
 /// <summary>
 /// 注册IMediator
 /// </summary>
 /// <param name="mediator"></param>
 public void RegisterMediator(IMediator mediator)
 {
     // 存放到字典里面
     mediatorMap[mediator.mediatorName] = mediator;
     // 找到所有的监听消息
     string[] notifications = mediator.listNotificationInterests();
     // 遍历所有消息
     for (int i = 0; i < notifications.Length; i++)
     {
         NotificationCenter.I().AddObserver(notifications[i],
                                            mediator);
     }
     // 添加IObserver
 }
Exemplo n.º 2
0
        /// <summary>
        /// 移除IMediator
        /// </summary>
        /// <param name="mediatorName"></param>
        /// <returns></returns>
        public IMediator RemoveMediator(string mediatorName)
        {
            IMediator mediator = mediatorMap.ContainsKey(mediatorName) ?
                                 mediatorMap[mediatorName] : null;

            if (mediator != null)
            {
                mediatorMap.Remove(mediatorName);
                // 找到所有的监听消息
                string[] notifications = mediator.listNotificationInterests();
                // 遍历所有消息
                for (int i = 0; i < notifications.Length; i++)
                {
                    NotificationCenter.I().RemoveObserver(notifications[i],
                                                          mediator);
                }
                // 移除IObserver
            }
            return(mediator);
        }
Exemplo n.º 3
0
 /// <summary>
 ///  发送消息
 /// </summary>
 /// <param name="name"></param>
 /// <param name="data"></param>
 public void SendNotification(string name, object data = null)
 {
     NotificationCenter.I().SendNotification(name, data);
 }