AMessage.cs 855 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using MongoDB.Bson.Serialization.Attributes;
  2. using ProtoBuf;
  3. // 不要在这个文件加[ProtoInclude]跟[BsonKnowType]标签,加到InnerMessage.cs或者OuterMessage.cs里面去
  4. namespace Model
  5. {
  6. public struct PacketInfo
  7. {
  8. public Header Header;
  9. public byte[] Bytes;
  10. public ushort Index;
  11. public ushort Length;
  12. }
  13. [BsonIgnoreExtraElements]
  14. [ProtoContract]
  15. public class Header
  16. {
  17. [BsonElement("a")]
  18. [ProtoMember(1)]
  19. public byte Flag;
  20. [BsonElement("b")]
  21. [ProtoMember(2)]
  22. public ushort Opcode;
  23. [BsonElement("c")]
  24. [BsonIgnoreIfDefault]
  25. [ProtoMember(3)]
  26. public uint RpcId;
  27. }
  28. [ProtoContract]
  29. public partial class MessageObject
  30. {
  31. }
  32. public interface AMessage
  33. {
  34. }
  35. public interface ARequest: AMessage
  36. {
  37. }
  38. public interface AResponse: AMessage
  39. {
  40. int Error { get; set; }
  41. string Message { get; set; }
  42. }
  43. }