예제 #1
0
    public void RegisterHandler(string messageType, RequestHandlerDelegate handler, string?messageId = null)
    {
        var eventName = messageType;

        if (string.IsNullOrEmpty(messageId))
        {
            MessageHandlerCollection.AddHandler(message => message.MessageType == messageType,
                                                handler);
        }
        else
        {
            MessageHandlerCollection.AddHandler(
                message => message.MessageType == messageType && message.ParentMessageId == messageId,
                handler,
                _clock.UtcNow + DefaultExpiredDuration);
        }
    }
예제 #2
0
    public void AddHandler(MessageID msgId, MessageHandler handler)
    {
        if (handler == null)
        {
            return;
        }

        if (m_handlerDict.ContainsKey(msgId))
        {
            m_handlerDict[msgId].AddHandler(handler);
        }
        else
        {
            MessageHandlerCollection mhc = new MessageHandlerCollection();
            mhc.AddHandler(handler);
            m_handlerDict.Add(msgId, mhc);
        }
    }