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>"); } }
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) + "]"); }
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) + " }"); }
public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path) => "\"" + (string)obj !+"\"";
public string Render(object?obj, IExampleRendererHandler renderer, ImmutableList <object?> path) => obj?.ToString() ?? "null";