Esempio n. 1
0
        /// <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));
            }
        }
Esempio n. 2
0
        public void GetEnumItemByDescriptionTest()
        {
            Sex sex = EnumExtension.GetEnumItemByDescription <Sex>("男");

            Assert.Equal <Sex>(Sex.Nan, sex);
        }