2008-09-18 28 views
14

Recuerdo haber visto hace algún tiempo que existe algún método en el espacio de nombres de Reflection que ejecutaría de manera recursiva ToString() en todas las propiedades de un objeto y lo formatearía muy bien para su visualización.¿Cuál es el equivalente .NET de PHP var_dump?

Sí, sé que todo lo que pueda desear será accesible a través del depurador, pero me pregunto si alguien conoce ese comando.

+1

Hoy utilizar ningún bien serializador – nawfal

Respuesta

8

Creo que lo que estás buscando es/fue llamado ObjectDumper. Utiliza la reflexión para recorrer y mostrar todas las propiedades diferentes de un objeto. Escuché por primera vez al aprender LINQ, y la mayoría de los ejemplos en el libro de Linq in Action lo usan.

Parece que Microsoft no lo incluyó en la versión final de Linq, pero el código todavía está en libertad. Hice una búsqueda rápida de Google para ello y aquí hay un enlace a la misma:

ObjectDumper Source Code

0

Definitivamente podría ver el uso en tal cosa, pero en .Net ¿no obtendrás la lista de nombres de tipo (String, Array, etc.)? La mayoría de las incorporaciones no tienen sobrecargas "útiles" de ToString() previamente escritas, ¿verdad?

0

Aquí hay un enlace con dumper código y un proyecto de demostración que muestra cómo utilizarlo. Download it here.

0

Puede escribirlo usted mismo. Por ejemplo, serialícelo en json usando la biblioteca JSON.net de Newtonsoft y escriba ese json en la consola. He aquí 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); 
    } 
} 

de uso:

Pretty.Print(whatever); 
+2

Mientras que este fragmento de código puede resolver la cuestión, [incluyendo una explicación] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. Por favor, intente no saturar su código con comentarios explicativos, ¡esto reduce la legibilidad tanto del código como de las explicaciones! – kayess

Cuestiones relacionadas