Exemple #1
0
        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("}");
        }
Exemple #2
0
        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>");
        }