internal StringBuilder PrettyPrintSimpleType(SimpleTypeInfo type, string lineStart = "", bool isLast = false) { StringBuilder strBuilder = new StringBuilder(); strBuilder.Append(lineStart); strBuilder.Append(isLast ? _lastTreeMarker : _treeMarker); strBuilder.AppendLine(type.ToString()); var children = type.GetChildren().ToList(); var lastChild = children.LastOrDefault(); foreach (SimpleTypeInfo simpleTypeInfo in children) { if (simpleTypeInfo.ReturnType != type.ReturnType) { strBuilder.Append(PrettyPrintSimpleType(simpleTypeInfo, lineStart += isLast ? " " : _emptyTreeMarker + " ", simpleTypeInfo == lastChild)); } else { //Return type is the same as itself strBuilder.Append("recursive"); } } return(strBuilder); }
public string PrettyPrint(string path = null) { var all = SimpleTypeInfo.GetAllFromType(_inspectObject.GetType()); var last = all.LastOrDefault(); StringBuilder builder = new StringBuilder(); builder.AppendLine($"<{_inspectObject.GetType().Name}>"); foreach (SimpleTypeInfo typeInfo in all) { builder.Append(PrettyPrintSimpleType(typeInfo, "", typeInfo == last)); } builder.Replace("`", string.Empty); return(builder.ToString()); }