/// <summary>Register RequestHandler /// </summary> public void RegisterRequestHandler(short code, IRequestMessageHandler handler) { if (!_requestMessageHandlerDict.TryAdd(code, handler)) { _logger.LogInformation("Register RequestMessageHandler fail! Code {0}", code); } }
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} 的处理器重复注册"); } }
public void Request(string eventName, IRequestMessageHandler eventHandler) { if (eventHandler == null) throw new ArgumentNullException("eventHandler"); Request(eventName, new Action<RequestMessage>(eventHandler.Invoke)); }