Exemplo n.º 1
0
            public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path)
            {
                if (path.Contains(obj))
                {
                    return("<Circular reference>");
                }

                if (path.Count >= _depthLimit)
                {
                    return("...");
                }

                try
                {
                    var innerHandler = _innerHandlers.Where(h => h.CanRender(obj)).FirstOrDefault();

                    if (innerHandler == null)
                    {
                        return(obj?.ToString() ?? "null");
                    }

                    return(innerHandler.Render(obj, renderer, path.Add(obj)));
                }
                catch
                {
                    return("<Rendering failed>");
                }
            }
Exemplo n.º 2
0
            public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path)
            {
                var elements = ((IEnumerable)obj !).Cast <object>();

                var elementsToRender = elements.Take(_elementLimit).ToList();
                var hasMoreElements  = elements.Skip(_elementLimit).Any();

                var renderedElements = Enumerable.Concat(
                    elementsToRender.Select(x => renderer.Render(x, renderer, path)),
                    hasMoreElements ? new[] { "..." } : Enumerable.Empty <string>());

                return("[" + string.Join(", ", renderedElements) + "]");
            }
Exemplo n.º 3
0
            public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path)
            {
                var properties = obj !.GetType().GetProperties();

                var propertiesToRender = properties.Take(_propertyLimit).ToList();
                var hasMoreProperties  = properties.Skip(_propertyLimit).Any();

                var renderedProperties = Enumerable.Concat(
                    propertiesToRender.Select(p => $"{p.Name} = {renderer.Render(p.GetValue(obj), renderer, path)}"),
                    hasMoreProperties ? new[] { "..." } : Enumerable.Empty <string>());

                return("{ " + string.Join(", ", renderedProperties) + " }");
            }
Exemplo n.º 4
0
 public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path) =>
 "\"" + (string)obj !+"\"";
Exemplo n.º 5
0
 public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path) => obj?.ToString() ?? "null";