//Data public object GetDataObject(Type type, BodyType body = BodyType.Undefined, CallDescriptor call = null) { if (body == BodyType.Undefined) { char firstCharacter = DataString.Trim().FirstOrDefault(); switch (firstCharacter) { case '{': case '[': body = BodyType.JSON; break; case '<': body = BodyType.XML; break; default: if (DataString.Contains("=")) { body = BodyType.UrlEncoded; } break; } } switch (body) { case BodyType.JSON: JsonSerializerSettings settings = call?.JsonSerialization?.Request; if (settings != null) { return(JsonConvert.DeserializeObject(DataString, type, settings)); } else { return(JsonConvert.DeserializeObject(DataString, type)); } case BodyType.XML: return(XmlConvert.DeserializeObject(DataString, type)); case BodyType.UrlEncoded: object targetObj = Activator.CreateInstance(type); foreach (PropertyInfo info in type.GetPropertiesCached()) { if (DataUrlEncoded.ContainsKey(info.Name)) { info.SetValue(targetObj, ParameterConverter.Static.Parse(info.PropertyType, DataUrlEncoded[info.Name])); } } return(targetObj); case BodyType.Raw: if (type == typeof(string)) { return(DataString); } else if (type == typeof(byte[])) { return(Data); } else { return(null); } case BodyType.MultipartStream: return(new MultiPartStream(DataStream)); default: return(null); } }