void IDumpWriter.WriteInstance(IInstanceData instanceData, ICollection <int> seenInstances) { CheckIfFirstElement(); builder.Append("\"instance\":{"); var id = instanceData.Id; builder.AppendFormat("\"id\":{0}", id); builder.AppendFormat(",\"type\":\"{0}\"", instanceData.TypeData == null ? "null" : SecurityElement.Escape(instanceData.TypeData.Type.Name)); builder.AppendFormat(",\"size\":{0}", instanceData.GetSize(seenInstances)); var fields = instanceData.Fields; if (fields.Count > 0) { if (!seenInstances.Contains(id)) { seenInstances.Add(id); builder.Append(",\"fields\":["); firstElement = true; foreach (var fieldData in fields) { thisDumpWriter.WriteField(fieldData, seenInstances); } builder.Append("]"); } else { builder.Append(",\"recursion\":{}"); } } builder.Append("}"); }
void IDumpWriter.WriteInstance(IInstanceData instanceData, ICollection <int> seenInstances) { builder.Append("<instance>"); var id = instanceData.Id; builder.AppendFormat("<id>{0}</id>", id); builder.AppendFormat("<type>{0}</type>", instanceData.TypeData == null ? "null" : SecurityElement.Escape(instanceData.TypeData.Type.Name)); builder.AppendFormat("<size>{0}</size>", instanceData.GetSize(seenInstances)); var fields = instanceData.Fields; if (fields.Count > 0) { if (!seenInstances.Contains(id)) { seenInstances.Add(id); builder.Append("<fields>"); foreach (var fieldData in fields) { thisDumpWriter.WriteField(fieldData, seenInstances); } builder.Append("</fields>"); } else { builder.Append("<recursion/>"); } } builder.Append("</instance>"); }