AMHandler.cs 623 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using ETModel;
  3. namespace ETHotfix
  4. {
  5. public abstract class AMHandler<Message> : IMHandler where Message: class
  6. {
  7. protected abstract ETTask Run(ETModel.Session session, Message message);
  8. public async ETVoid Handle(ETModel.Session session, object msg)
  9. {
  10. Message message = msg as Message;
  11. if (message == null)
  12. {
  13. Log.Error($"消息类型转换错误: {msg.GetType().Name} to {typeof(Message).Name}");
  14. }
  15. try
  16. {
  17. await this.Run(session, message);
  18. }
  19. catch (Exception e)
  20. {
  21. Log.Error(e);
  22. }
  23. }
  24. public Type GetMessageType()
  25. {
  26. return typeof(Message);
  27. }
  28. }
  29. }