/// <summary> /// 解析服务器接收到的微信服务器推送过来的消息。 /// </summary> /// <param name="message">服务器接收到的请求消息。</param> /// <returns>接收请求消息对象。</returns> public static IRequestMessage Parse(string message) { #region 参数校验 if (string.IsNullOrEmpty(message)) { throw new StringNullOrEmptyException(nameof(message)); } #endregion #region 获取消息类型 dynamic xmlMsgObj = new DynamicXml(message); string msgTypeText = xmlMsgObj.MsgType.Value; RequestMsgType msgType = EnumExtension.GetEnumItemByDescription <RequestMsgType>(msgTypeText); #endregion //如果不是 事件推送 则, if (msgType != RequestMsgType.Event) { return(GetRequestMessageByMsgType(msgType, message)); } else { string eventTypeText = xmlMsgObj.Event.Value; RequestMsgEventType eventType = EnumExtension.GetEnumItemByDescription <RequestMsgEventType>(eventTypeText); return(GetRequestEventMessageByEventType(eventType, message)); } }
public void GetEnumItemByDescriptionTest() { Sex sex = EnumExtension.GetEnumItemByDescription <Sex>("男"); Assert.Equal <Sex>(Sex.Nan, sex); }