Ejemplo n.º 1
0
 /// <summary>Register RequestHandler
 /// </summary>
 public void RegisterRequestHandler(short code, IRequestMessageHandler handler)
 {
     if (!_requestMessageHandlerDict.TryAdd(code, handler))
     {
         _logger.LogInformation("Register RequestMessageHandler fail! Code {0}", code);
     }
 }
Ejemplo n.º 2
0
        private void LoadRequestMessagesHandlers()
        {
            RequestMessagesHandlers handlers = (RequestMessagesHandlers)ConfigurationManager.GetSection("RequestMessagesHandlers");

            if (handlers == null || handlers.RequestMessagesHandlersList.Count == 0)
            {
                throw new ArgumentNullException("Messages Handlers Not Found");
            }
            m_requestHandlers = new List <IRequestMessageHandler <IRequestMessage> >();
            int count = 1;

            foreach (RequestMessageHandler handler in handlers.RequestMessagesHandlersList)
            {
                Type handlerTyp = Type.GetType(handler.Type, true, true);
                if (typeof(IRequestMessageHandler <IRequestMessage>).IsAssignableFrom(handlerTyp))
                {
                    IRequestMessageHandler <IRequestMessage> newHandlerInstance =
                        (IRequestMessageHandler <IRequestMessage>)Activator.CreateInstance(handlerTyp);
                    m_requestHandlers.Add(newHandlerInstance);
                    newHandlerInstance.Initialize();
                }
                else
                {
                    throw new Exception("Handler Not Defined");
                }
                count++;
            }
        }
 public void AddRequestHandler(int messageId, IRequestMessageHandler handler)
 {
     if (!requestHandlerDic.ContainsKey(messageId))
     {
         requestHandlerDic.Add(messageId, handler);
     }
     else
     {
         Debug.LogError($"消息号为 {messageId} 的处理器重复注册");
     }
 }
Ejemplo n.º 4
0
 public void Request(string eventName, IRequestMessageHandler eventHandler)
 {
     if (eventHandler == null) throw new ArgumentNullException("eventHandler");
     Request(eventName, new Action<RequestMessage>(eventHandler.Invoke));
 }