private ReferencedObj SerializeFirstRef(object obj, ObjInfo info) { var obj2 = new ReferencedObj(); info.FirstRef = obj2; var type = obj.GetType(); obj2.Type = type.FullName; var obj3 = obj.As<JsObject>(); if (obj is IList) { var list = obj.As<IList>(); obj2.ListItems = new JsArray(); foreach (var item in list) { var item2 = Serialize2(item); obj2.ListItems.push(item2); } } else { foreach (var p in obj3) { if (IgnoreFields[p]) continue; if (!obj3.hasOwnProperty(p)) continue; var value = obj3[p]; obj2[p] = Serialize2(value); } } return obj2; }
TypedObj SerializeRefOrContent(object obj) { if (!ObjInfos.ContainsKey(obj)) { var info = new ObjInfo(); ObjInfos.Add(obj, info); SerializeFirstRef(obj, info); return info.FirstRef; } else { var info = ObjInfos[obj]; if (info.Ref == null) { RefIndex++; info.Ref = new ObjRef { Key = RefIndex.ToString(), Type="ObjRef" }; info.FirstRef.RefKey = info.Ref.Key; } return info.Ref; } }
private ReferencedObj SerializeFirstRef(object obj, ObjInfo info) { var obj2 = new ReferencedObj(); info.FirstRef = obj2; var type = obj.GetType(); obj2.Type = type.FullName; var obj3 = obj.As <JsObject>(); if (obj is IList) { var list = obj.As <IList>(); obj2.ListItems = new JsArray(); foreach (var item in list) { var item2 = Serialize2(item); obj2.ListItems.push(item2); } } else { foreach (var p in obj3) { if (IgnoreFields[p]) { continue; } if (!obj3.hasOwnProperty(p)) { continue; } var value = obj3[p]; obj2[p] = Serialize2(value); } } return(obj2); }
TypedObj SerializeRefOrContent(object obj) { if (!ObjInfos.ContainsKey(obj)) { var info = new ObjInfo(); ObjInfos.Add(obj, info); SerializeFirstRef(obj, info); return(info.FirstRef); } else { var info = ObjInfos[obj]; if (info.Ref == null) { RefIndex++; info.Ref = new ObjRef { Key = RefIndex.ToString(), Type = "ObjRef" }; info.FirstRef.RefKey = info.Ref.Key; } return(info.Ref); } }