Copier les valeurs d'un objet dans Visual Studio en mode debug
Dans Visual Studio en mode debug, il est possible de survoler les variables de montrer leur valeur et puis cliquez sur "Copier", "Copier l'Expression" ou "Copie de la Valeur".
Dans le cas où la variable est un objet, et pas seulement un type de base, il y a un signe + pour développer et explorer l'objet. Il y a moyen de copier tout ce qui dans le presse-papiers?
Vous devez vous connecter pour publier un commentaire.
Dans la fenêtre exécution, tapez
?name_of_variable
Ce sera imprimée tout, et vous pouvez les copier manuellement que n'importe où que vous voulez, ou utiliser la fenêtre d'exécution fonctionnalités de journalisation automatiquement l'écrire dans un fichier.
Mise à JOUR: je suppose que vous demandez comment faire pour copier/coller la structure imbriquée des valeurs, de sorte que vous pouvez soit rechercher dans un texte, ou de sorte que vous pouvez l'enregistrer sur le côté, puis plus tard, de comparer l'état de l'objet à elle. Si je suis juste, vous pourriez vouloir vérifier l'extension commerciale de Visual Studio que j'ai créé, appelé OzCode, qui permet de faire ces chose beaucoup plus facilement par le biais de la "Recherche" et "Comparer" caractéristiques.
Mise à JOUR 2 pour répondre À @ppumkin de la question, ou nouvelle EAP a une nouvelle fonction d'Exportation permet aux utilisateurs d'Exporter les valeurs de la variable Json, XML, Excel, ou de code C#.
Divulgation complète: je suis le co-créateur de l'outil que j'ai décrit ici.
Vous pouvez exécuter le code ci-dessous dans la fenêtre exécution et il permettra d'exporter vers un fichier xml le XML sérialisé représentation d'un objet:
Source: Visual Studio comment sérialiser l'objet à partir du débogueur
Cannot evaluate expression because the code of the current method is optimized.
???Il y a une extension récente de l'Objet de l'Exportateur qui n'cette pratique.
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
Extension: https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
Pas exactement ce que vous me demandez, mais vous pouvez ajouter une montre pour cet objet, et dans la fenêtre espion, développez et sélectionnez tout ce que vous voulez copier, puis de le copier.
En utilisant attributs pour décorer vos classes et méthodes vous pouvez avoir une valeur spécifique de l'objet de votre écran pendant le débogage avec le DebuggerDisplay attribut par exemple
Plus populaires réponse de https://stackoverflow.com/a/23362097/2680660:
Google m'a amené à cette 8-année-vieille question et j'ai fini par utiliser ObjectDumper pour atteindre quelque chose de très similaire à copier-coller du débogueur de données. C'était un jeu d'enfant.
Je sais que la question a demandé spécifiquement au sujet de l'information à partir de la débogueur, mais ObjectDumper donne des informations qui sont fondamentalement les mêmes. Je suis en supposant que ceux qui google à cette question sont comme moi et juste besoin de données pour des fins de débogage et ne se soucient pas de savoir s'il est techniquement vient de le débogueur ou pas.
J'utilise toujours:
Puis je copie la chaîne de valeur qui, malheureusement, copie également les barres obliques inverses.
Pour supprimer le jeux rendez-vous ici:
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_replace
Puis à l'intérieur de la
<p id="demo">Visit Microsoft!</p>
élément de remplacer le texte avec le texte que vous avez copié.puis remplacez le
var res = str.replace("Microsoft", "W3Schools");
ligne avecDe l'exécution de ces nouveaux changements, mais n'oubliez pas de cliquer sur "essayer" sur le bouton de droite.
Maintenant, vous devriez avoir tout le texte de l'objet au format json que vous pouvez déposer dans un json formateur comme http://jsonformatter.org ou pour créer un POCO vous pouvez maintenant utiliser http://json2csharp.com/
Je sais que je suis un peu en retard à la fête, mais j'ai écrit un JSON pour la mise en œuvre de la sérialisation d'un objet, si vous préférez avoir une sortie JSON. Utilise Newtonsoft.Json de référence.
si vous avez une liste et que vous voulez trouver une variable spécifique:
Dans la fenêtre exécution, tapez
si cela renvoie vrai
J'ai juste cliqué avec le bouton droit sur la variable et sélectionné AddWatch, c'est apporter de la fenêtre espion qui se compose de toutes les valeurs. J'ai sélectionné tous et de les coller dans un texte d'un éditeur de texte, c'est tout.