public void SetBodyData(MsgData data) { this.Body = JsonConvert.SerializeObject(data); }
/// <summary> /// /// </summary> /// <returns></returns> public MsgData GetBodyData() { MsgData msgdata = null; try { Newtonsoft.Json.Linq.JContainer data = JsonConvert.DeserializeObject <Newtonsoft.Json.Linq.JContainer>(this.Body); msgdata = new MsgData(); msgdata.from = data["from"].ToString(); msgdata.to = data["to"].ToString(); msgdata.ext = data["ext"]; Newtonsoft.Json.Linq.JContainer bodies = data.Value <Newtonsoft.Json.Linq.JContainer>("bodies"); msgdata.bodies = new BodyBase[bodies.Count]; for (int i = 0; i < bodies.Count; i++) { string type = bodies[i]["type"].ToString(); switch (type) { case "img": msgdata.bodies[i] = JsonConvert.DeserializeObject <ImageBody>(bodies[i].ToString()); break; case "txt": msgdata.bodies[i] = JsonConvert.DeserializeObject <TextBody>(bodies[i].ToString()); break; case "audio": msgdata.bodies[i] = JsonConvert.DeserializeObject <AudioBody>(bodies[i].ToString()); break; case "video": msgdata.bodies[i] = JsonConvert.DeserializeObject <VideoBody>(bodies[i].ToString()); break; case "loc": msgdata.bodies[i] = JsonConvert.DeserializeObject <LocationBody>(bodies[i].ToString()); break; case "file": msgdata.bodies[i] = JsonConvert.DeserializeObject <FileBody>(bodies[i].ToString()); break; default: //msgdata.bodies[i] = JsonConvert.DeserializeObject<FileBody>(bodies[i].ToString()); break; } } //msgdata = JsonConvert.DeserializeObject<MsgData>(this.Body); } catch (Exception ex) { } if (msgdata != null) { } return(msgdata); }