Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }