/// <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 }
/// <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); }
/// <summary> /// 发送消息 /// </summary> /// <param name="name"></param> /// <param name="data"></param> public void SendNotification(string name, object data = null) { NotificationCenter.I().SendNotification(name, data); }