示例#1
0
        internal void Unsubscribe <TBusHanlder, TPackMessage, TMessage>(TBusHanlder handler, string name = "default") where TPackMessage : MessagePack
        {
            if (handler == null)
            {
                return;
            }
            Type type = typeof(TMessage);

            if (!Containers.TryGetValue(type, out object val))
            {
                return;
            }

            IMessageTypeHandler <TBusHanlder, TPackMessage, TMessage> typeHandler = val as IMessageTypeHandler <TBusHanlder, TPackMessage, TMessage>;

            if (typeHandler == null)
            {
                throw new InvalidOperationException($"Not found handler for {type}:{name}");
            }

            typeHandler.Remove(handler, name);
        }