public static string Print <TNode, TProperty>(ITypeReferenceMergerStructure <TNode, TProperty> item, string indent) where TNode : IMergerStructure { var stringBuilder = new StringBuilder(); Print(item, stringBuilder, "", indent); return(stringBuilder.ToString()); }
public static void Print <TNode, TProperty>(ITypeReferenceMergerStructure <TNode, TProperty> item, StringBuilder stringBuilder, string indent, string additive) where TNode : IMergerStructure { stringBuilder.AppendLine($"{indent}{item}"); foreach (var property in item.Properties) { var itemIndent = indent + additive; if (property.Key.IsArray) { stringBuilder.AppendLine($"{itemIndent}{property.Key}"); itemIndent += " "; } if (property.Value == null) { continue; } foreach (var propertyValue in property.Value) { stringBuilder.AppendLine($"{itemIndent}{propertyValue}"); } } foreach (var node in item.Nodes) { var itemIndent = indent + additive; if (node.Key.IsArray) { stringBuilder.AppendLine($"{itemIndent}{node.Key}"); itemIndent += " "; } if (node.Value == null) { continue; } foreach (var nodeValue in node.Value) { nodeValue.Print(stringBuilder, itemIndent, additive); } } }