TextMessage.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Linq;
  6. namespace WeiXin.Library.Messages
  7. {
  8. /// <summary>
  9. ///
  10. /// </summary>
  11. public class TextMessage:Message
  12. {
  13. /// <summary>
  14. /// 模板静态字段
  15. /// </summary>
  16. private static string m_Template;
  17. /// <summary>
  18. /// 内容
  19. /// </summary>
  20. public string Content { get; set; }
  21. /// <summary>
  22. /// 消息ID
  23. /// </summary>
  24. public string MsgId { get; set; }
  25. /// <summary>
  26. /// 默认构造函数
  27. /// </summary>
  28. public TextMessage()
  29. {
  30. this.MsgType = "text";
  31. }
  32. /// <summary>
  33. /// 从xml数据加载文本消息
  34. /// </summary>
  35. /// <param name="xml"></param>
  36. public static TextMessage LoadFromXml(string xml)
  37. {
  38. TextMessage tm = null;
  39. if (!string.IsNullOrEmpty(xml))
  40. {
  41. XElement element = XElement.Parse(xml);
  42. if (element != null)
  43. {
  44. tm = new TextMessage();
  45. tm.FromUserName = element.Element(Common.FROM_USERNAME).Value;
  46. tm.ToUserName = element.Element(Common.TO_USERNAME).Value;
  47. tm.CreateTime = element.Element(Common.CREATE_TIME).Value;
  48. tm.Content = element.Element(Common.CONTENT).Value;
  49. tm.MsgId = element.Element(Common.MSG_ID).Value;
  50. }
  51. }
  52. return tm;
  53. }
  54. /// <summary>
  55. /// 模板
  56. /// </summary>
  57. public override string Template
  58. {
  59. get
  60. {
  61. if (string.IsNullOrEmpty(m_Template))
  62. {
  63. LoadTemplate();
  64. }
  65. return m_Template;
  66. }
  67. }
  68. /// <summary>
  69. /// 生成内容
  70. /// </summary>
  71. /// <returns></returns>
  72. public override string GenerateContent()
  73. {
  74. this.CreateTime = Common.GetNowTime();
  75. return string.Format(this.Template,this.ToUserName,this.FromUserName,this.CreateTime,this.MsgType,this.Content,this.MsgId);
  76. }
  77. /// <summary>
  78. /// 加载模板
  79. /// </summary>
  80. private static void LoadTemplate()
  81. {
  82. m_Template = @"<xml>
  83. <ToUserName><![CDATA[{0}]]></ToUserName>
  84. <FromUserName><![CDATA[{1}]]></FromUserName>
  85. <CreateTime>{2}</CreateTime>
  86. <MsgType><![CDATA[{3}]]></MsgType>
  87. <Content><![CDATA[{4}]]></Content>
  88. <MsgId>{5}</MsgId>
  89. </xml>";
  90. }
  91. }
  92. }