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.

¿Fue útil?

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:

Código fuente de ObjectDumper

Otros consejos

Puede encontrar un código de ejemplo para volcar un objeto y sus propiedades aquí:

http://www.developer.com/net/csharp/article.php/3713886

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top