AMessage.cs 987 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using MongoDB.Bson.Serialization.Attributes;
  2. using ProtoBuf;
  3. // 不要在这个文件加[ProtoInclude]跟[BsonKnowType]标签,加到InnerMessage.cs或者OuterMessage.cs里面去
  4. namespace Model
  5. {
  6. [ProtoContract]
  7. [BsonKnownTypes(typeof(AActorMessage))]
  8. [BsonKnownTypes(typeof(ARequest))]
  9. [BsonKnownTypes(typeof(AActorResponse))]
  10. public abstract partial class AMessage
  11. {
  12. public override string ToString()
  13. {
  14. return MongoHelper.ToJson(this);
  15. }
  16. }
  17. [ProtoContract]
  18. [BsonKnownTypes(typeof(AActorRequest))]
  19. public abstract partial class ARequest : AMessage
  20. {
  21. [ProtoMember(90)]
  22. [BsonIgnoreIfDefault]
  23. public uint RpcId;
  24. }
  25. /// <summary>
  26. /// 服务端回的RPC消息需要继承这个抽象类
  27. /// </summary>
  28. [ProtoContract]
  29. [BsonKnownTypes(typeof(AActorResponse))]
  30. public abstract partial class AResponse : AMessage
  31. {
  32. [ProtoMember(90)]
  33. public uint RpcId;
  34. [ProtoMember(91)]
  35. public int Error = 0;
  36. [ProtoMember(92)]
  37. public string Message = "";
  38. }
  39. }