예제 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                return(null);
            }
            // Read the message type and serialize accordingly
            JToken value;
            string typeCode = null;
            var    json     = JObject.ReadFrom(reader) as JObject;

            if (json.TryGetValue("mt", out value) == true && value.Type == JTokenType.String)
            {
                typeCode = value.ToString();
            }
            var type = RealTimeMessage.GetType(typeCode);

            if (type != null)
            {
                return(new JsonSerializer().Deserialize(json.CreateReader(), RealTimeMessage.GetType(typeCode)));
            }
            else
            {
                return(null);
            }
        }