protected override void ParseDataCollection2Result(DataCollection d, ref object obj) { var rpd = (ResponseObject)d; var responsesobj = rpd.Result; var contenttype = rpd.ContentType; if (contenttype.ToLower().IndexOf("/xml") > 0) { if (obj is FrameDLRObject) { var dobj = (FrameDLRObject)obj; dobj.Load(responsesobj); } else if (obj is string) { obj = ComFunc.nvl(responsesobj); } } else if (contenttype.ToLower().StartsWith("image") || contenttype.ToLower().StartsWith("audio") || contenttype.ToLower().StartsWith("video")) { if (obj is FrameDLRObject) { dynamic dobj = (FrameDLRObject)obj; dobj.content = responsesobj; dobj.filename = rpd.FileName; dobj.contenttype = contenttype; } else if (obj is Stream) { if (responsesobj != null) obj = new MemoryStream((byte[])responsesobj); } } else { if (obj is string) { if (responsesobj is byte[]) { obj = ComFunc.ByteToString(((byte[])responsesobj), Encoding.UTF8); } else { obj = ComFunc.nvl(responsesobj); } } else if (obj is FrameDLRObject) { var dobj = (FrameDLRObject)obj; if (!(responsesobj is byte[])) { dobj.Load(responsesobj); } } else { FrameDLRObject dobj = FrameDLRObject.CreateInstance(responsesobj); obj = dobj.ToModel(obj.GetType()); } } }
/// <summary> /// 从session中获取对象 /// </summary> /// <param name="session"></param> /// <param name="key"></param> /// <returns></returns> public static object GetObject(this ISession session, string key) { var str = session.GetString(key); if (string.IsNullOrEmpty(str)) { return(null); } var arr = str.Split(';'); if (arr.Length != 2) { return(null); } var assemblefullname = arr[0]; var base64 = arr[1]; var value = ComFunc.Base64DeCode(base64.Replace(" ", "+")); var typefullname = assemblefullname.Substring(0, assemblefullname.IndexOf(",")); var t = Type.GetType(assemblefullname); if (typefullname == typeof(string).FullName) { return(value); } if (typefullname == typeof(FrameDLRObject).FullName) { return((FrameDLRObject)FrameDLRObject.CreateInstance(value, FrameDLRFlags.SensitiveCase)); } if (t.GetTypeInfo().GetInterface(typeof(IJSONParsable).Name, true) != null) { var obj = (IJSONParsable)Activator.CreateInstance(t); obj.TryParseJSON(value); return(obj); } if (typefullname == typeof(int).FullName) { return(int.Parse(value)); } if (typefullname == typeof(long).FullName) { return(long.Parse(value)); } if (typefullname == typeof(float).FullName) { return(float.Parse(value)); } if (typefullname == typeof(double).FullName) { return(double.Parse(value)); } if (typefullname == typeof(decimal).FullName) { return(decimal.Parse(value)); } if (typefullname == typeof(DateTime).FullName) { return(DateTimeStd.ParseStd(value, "yyyy/MM/dd HH:mm:ss fff").Value); } if (typefullname == typeof(bool).FullName) { return(bool.Parse(value)); } FrameDLRObject dobj = FrameDLRObject.CreateInstance(value, FrameDLRFlags.SensitiveCase); return(dobj.ToModel(t)); }