// 拆除消息(命令或事件)的运动路径 public static void UnPath(IDelegateHandler handler) { if (handler == null) { return; } SMessageDispatcher.UnRegister(handler); }
public void UnRegister(IDelegateHandler handler) { if (handler == null) { return; } lock (_locker) { var handlerId = handler.HandlerId; _paths.Remove(handlerId.HandlerPath); var keyType = handlerId.MessageType; if (_handlers.ContainsKey(keyType) && _handlers[keyType] != null && _handlers[keyType].Count > 0 && _handlers[keyType].Contains(handler)) { _handlers[keyType].Remove(handler); } } }