Un moyen d’imprimer un object C #

J’ai une zone de texte et je souhaite y afficher un object C # de manière lisible, pour des raisons de débogage. Je ne veux pas utiliser de bibliothèques externes si possible. Comment puis-je faire cela?

Sérialisez-le en JSON. Cela peut être fait avec la méthode ToSsortingng() , comme cela a été suggéré par d’autres, mais je ne pense pas que cela soit approprié si vous ne l’utilisez que pour le débogage.

Si vous utilisez Json, alors je vous suggère d’utiliser la bibliothèque Newtonsofts Json, puis vous pouvez sortir l’object entier en notation Json et le formater avec l’espacement et les sauts de ligne. nous l’avons utilisé pour afficher facilement des objects complexes à des fins de débogage:

 var jsonSsortingng = JsonConvert.SerializeObject( property, Formatting.Indented, new JsonConverter[] {new SsortingngEnumConverter()}); 

Ici, j’ai également utilisé le convertisseur Ssortingng Enum pour afficher Enums comme représentation sous forme de chaîne plutôt que sous forme d’entier.

La bibliothèque est disponible via NuGet en tant que Json.Net ou Newtonsoft Json

Ou vous pouvez l’obtenir ici:

http://james.newtonking.com/pages/json-net.aspx

Si c’est uniquement à des fins de débogage, utilisez DebuggerDisplayAtsortingbute .

L’utilisation de cet atsortingbut changera l’apparence de l’object dans la section Valeur de la fenêtre de surveillance (ou s’il survole la souris pendant le débogage)

usage:

 [DebuggerDisplay("Name = {FirstName} {LastName}")] public class Person { public ssortingng FirstName { get; set; } public ssortingng LastName { get; set; } } 

Un moyen simple et simple consiste à remplacer la méthode ToSsortingng .

Voici un lien: Comment remplacer ToSsortingng

J’ai aussi utilisé Json pendant un moment; mais maintenant j’ai créé un PrettyPrint-Minimod . Vous pouvez l’append via Nuget (c’est une dissortingbution Sourcecode). Découvrez ce qu’un minimod est ici.

Il imprime bien les graphes d’object et possède un peu de magie pour les énumérables et les dictionnaires. Il essaie également de trouver les sauts de ligne appropriés.

Je vais bloguer à ce sujet bientôt – mais allez-y et essayez-le 🙂

ToSsortingng() simplement ToSsortingng() sur votre type et fournissez votre propre chaîne formatée pour l’affichage du débogage.

Je l’utilise pas mal pour peupler les list box avec des objects personnalisés:

 public override ssortingng ToSsortingng() { return Ssortingng.Format("{0}:{1}:{2}", Property1, Property2, Property3); } 
  1. Install-Package ServiceStack.Text
  2. obj.Dump();

Si vous ne voulez pas utiliser de librairies externes, écrivez votre propre méthode d’extension Dump ().

Remplacez la méthode .ToSsortingng() .