Question

Je me souviens avoir vu il y a quelque temps qu'il existait une méthode dans l'espace de noms Reflection qui pourrait exécuter de manière récursive ToString () sur toutes les propriétés d'un objet et le formater correctement pour son affichage.

Oui, je sais que tout ce que je pourrais souhaiter sera accessible via le débogueur, mais je me demande si quelqu'un connaît cette commande?

Était-ce utile?

La solution

Je pense que ce que vous recherchez s'appelle / s'appelle ObjectDumper. Il utilise la réflexion pour parcourir et afficher toutes les propriétés différentes d'un objet. J'en ai entendu parler pour la première fois lors de l'apprentissage de LINQ, et la plupart des exemples du livre Linq in Action l'utilisent.

Il semble que Microsoft ne l’ait pas inclus dans la version finale de Linq, mais le code n’est pas encore sorti. J'ai fait une recherche rapide sur Google et en voici un lien:

Code source ObjectDumper

Autres conseils

Un exemple de code permettant de vider un objet et ses propriétés est disponible ici:

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

Vous pouvez l'écrire vous-même. Par exemple, sérialisez-le dans json à l'aide de la bibliothèque JSON.net de Newtonsoft et écrivez ce json sur la console. Voici un exemple:

using Newtonsoft.Json;

static class Pretty
{
    public static void Print<T> (T x)
    {
        string json = JsonConvert.SerializeObject(x, Formatting.Indented);
        Console.WriteLine(json);
    }
}

Utilisation:

Pretty.Print(whatever);

Je pourrais certainement en voir l’utilisation dans une telle chose, mais en .Net, n’êtes-vous pas principalement une liste de noms de types (String, Array, etc.)? La plupart des fonctions intégrées n'ont pas " utile " Les surcharges ToString () pré-écrites, est-ce qu'elles?

Voici un lien avec le dumper de code et un projet de démonstration qui vous montre comment l'utiliser. Téléchargez-le ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top