¿Cuál es el equivalente .NET de PHP var_dump?
-
01-07-2019 - |
Pregunta
Recuerdo haber visto hace un tiempo que hay algún método en quizás el espacio de nombres de Reflection que se ejecutaría de forma recursiva. ToString()
en todas las propiedades de un objeto y formatearlo bien para su visualización.
Sí, sé que todo lo que pueda desear será accesible a través del depurador, pero me pregunto si alguien conoce ese comando.
Solución
Creo que lo que estás buscando se llama/se llamaba ObjectDumper.Utiliza la reflexión para iterar y generar todas las diferentes propiedades de un objeto.Escuché sobre esto por primera vez mientras aprendía LINQ, y la mayoría de los ejemplos en el libro Linq in Action lo usan.
Parece que Microsoft no lo incluyó en la versión final de Linq, pero el código aún está disponible.Lo busqué rápidamente en Google y aquí hay un enlace:
Otros consejos
Puede encontrar un código de ejemplo para volcar un objeto y sus propiedades aquí:
Puedes escribirlo tú mismo.Por ejemplo, serialícelo en json usando la biblioteca JSON.net de Newtonsoft y escriba ese json en la consola.Aquí hay un ejemplo:
using Newtonsoft.Json;
static class Pretty
{
public static void Print<T> (T x)
{
string json = JsonConvert.SerializeObject(x, Formatting.Indented);
Console.WriteLine(json);
}
}
Uso:
Pretty.Print(whatever);
Ciertamente podría ver el uso de tal cosa, pero en .Net, ¿no obtendrás principalmente una lista de nombres de tipos (String, Array, etc.)?La mayoría de las funciones integradas no tienen sobrecargas ToString() "útiles" preescritas, ¿verdad?
Aquí hay un enlace con el volcador de código y un proyecto de demostración que le muestra cómo usarlo. Descarguelo aqui.