pretty org online indent htmlviewer convert codebeautify code beautiful c# pretty-print

c# - org - json codebeautify



Una forma de imprimir bastante un objeto C# (9)

  1. Install-Package ServiceStack.Text
  2. obj.Dump();

Si no desea utilizar libs externas, escriba su propio método de extensión Dump ().

Tengo un cuadro de texto y quiero mostrar un objeto C # en él de una manera legible para los humanos, solo por razones de depuración. No quiero usar bibliotecas externas si es posible. ¿Cómo hago esto?


Reemplazar el método .ToString() .


Si solo es para depuración, use DebuggerDisplayAttribute .

El uso de este atributo cambiará el aspecto del objeto en la sección Valor de la ventana del reloj (o al pasar el mouse durante la depuración)

uso:

[DebuggerDisplay("Name = {FirstName} {LastName}")] public class Person { public string FirstName { get; set; } public string LastName { get; set; } }


Si usa Json, le sugiero que use la biblioteca Newtonsofts Json y luego puede generar el objeto completo en notación Json y lo formateará con espaciado y saltos de línea. lo hemos usado para mostrar objetos complejos fácilmente con fines de depuración:

var jsonString = JsonConvert.SerializeObject( property, Formatting.Indented, new JsonConverter[] {new StringEnumConverter()});

aquí también he usado el convertidor String Enum para mostrar Enums como su representación de cadena en lugar de como un entero.

La biblioteca está disponible a través de NuGet como Json.Net o Newtonsoft Json

O puede obtenerlo aquí:

http://james.newtonking.com/pages/json-net.aspx


Simplemente anule ToString() en su tipo y proporcione su propia cadena formateada para la visualización de depuración.



Utilizo esto bastante para llenar cuadros de lista con objetos personalizados:

public override string ToString() { return String.Format("{0}:{1}:{2}", Property1, Property2, Property3); }


también usé a Json por un tiempo; pero ahora creé PrettyPrint-Minimod . Puede agregarlo a través de Nuget (es una distribución de código fuente). Descubra qué es un Minimod aquí.

Imprime muy bien gráficos de objetos y tiene algo de magia para enumerables y diccionarios. También intenta descifrar los saltos de línea adecuados.

Estaré blogueando sobre eso pronto, pero solo adelante y pruébalo :-)


Serializarlo a JSON. Se puede hacer en el método ToString() como otros sugeridos, pero no creo que sea apropiado si va a usar eso solo para la depuración.