c# - org - json codebeautify
Una forma de imprimir bastante un objeto C# (9)
- Install-Package ServiceStack.Text
-
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í:
Simplemente anule ToString()
en su tipo y proporcione su propia cadena formateada para la visualización de depuración.
Una manera fácil y simple es anular el método ToString
.
Aquí hay un enlace: Cómo anular ToString
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.