MessageMemberAttribute.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Vinno.IUS.Common.Network.Transfer
  5. {
  6. /// <summary>
  7. ///Transfer Message Attribute
  8. /// </summary>
  9. [AttributeUsage(AttributeTargets.Property)]
  10. public class MessageMemberAttribute : CustomMessageAttribute
  11. {
  12. /// <summary>
  13. /// Transfer Message Attribute
  14. /// </summary>
  15. /// <param name="tag">enum messagetag</param>
  16. public MessageMemberAttribute(object tag) : base(tag)
  17. {
  18. }
  19. }
  20. /// <summary>
  21. /// message class attribute
  22. /// </summary>
  23. [AttributeUsage(AttributeTargets.Class)]
  24. public class MessageClassAttribute : CustomMessageAttribute
  25. {
  26. /// <summary>
  27. /// Transfer Message Attribute
  28. /// </summary>
  29. /// <param name="tag">enum messagetag</param>
  30. public MessageClassAttribute(object tag):base(tag)
  31. {
  32. }
  33. }
  34. /// <summary>
  35. /// custom message attribute abstract
  36. /// </summary>
  37. [AttributeUsage(AttributeTargets.All)]
  38. public abstract class CustomMessageAttribute : Attribute
  39. {
  40. /// <summary>
  41. ///get Message tag Id
  42. /// </summary>
  43. public int TagId { get; }
  44. /// <summary>
  45. /// get Message tag description
  46. /// </summary>
  47. public string TagDescription { get; }
  48. /// <summary>
  49. /// Transfer Message Attribute
  50. /// </summary>
  51. /// <param name="tag">enum messagetag</param>
  52. protected CustomMessageAttribute(object tag)
  53. {
  54. TagId = Convert.ToInt32(tag);
  55. TagDescription = tag.ToString();
  56. TagEnum = tag;
  57. }
  58. public object TagEnum { get; }
  59. }
  60. /// <summary>
  61. /// message list member attibute
  62. /// </summary>
  63. [AttributeUsage(AttributeTargets.Property)]
  64. public class MessageListMemberAttribute : CustomMessageAttribute
  65. { /// <summary>
  66. /// get Sub Message tag Id ,eg List<Message> ,Message.Tag.Id=SubTagId
  67. /// </summary>
  68. public int SubTagId { get; }
  69. /// <summary>
  70. /// get Sub Message tag Description ,eg List<Message> ,Message.Tag.Description=SubTagDescription
  71. /// </summary>
  72. public string SubTagDescription { get; }
  73. /// <summary>
  74. /// Transfer Message Attribute
  75. /// </summary>
  76. /// <param name="tag">enum messagetag</param>
  77. /// <param name="subTag">enum messagetag , eg List<Message> ,Message.Tag=subTag</param>
  78. public MessageListMemberAttribute(object tag, object subTag) : base(tag)
  79. {
  80. SubTagId = Convert.ToInt32(subTag);
  81. SubTagDescription = subTag.ToString();
  82. }
  83. }
  84. }