/// <summary>
        /// Deserialize an envelope
        /// from a string
        /// </summary>
        /// <param name="envelopeString"></param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentException">JSON string is not a valid envelope</exception>
        public Envelope Deserialize(string envelopeString)
        {
            var jsonObject = JsonObject.ParseJson(envelopeString);

            if (jsonObject.ContainsKey("content"))
            {
                return(JsonSerializer <Message> .ParseJson(jsonObject));
            }
            else if (jsonObject.ContainsKey("event"))
            {
                return(JsonSerializer <Notification> .ParseJson(jsonObject));
            }
            else if (jsonObject.ContainsKey("method"))
            {
                return(JsonSerializer <Command> .ParseJson(jsonObject));
            }
            else if (jsonObject.ContainsKey("state"))
            {
                return(JsonSerializer <Session> .ParseJson(jsonObject));
            }
            else
            {
                throw new ArgumentException("JSON string is not a valid envelope");
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Deserializes the specified json.
        /// </summary>
        /// <param name="json">The json.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">json</exception>
        public static T Deserialize(string json)
        {
            if (json == null)
            {
                throw new ArgumentNullException("json");
            }

            var jsonObject = JsonObject.ParseJson(json);

            return(ParseJson(jsonObject));
        }