10

Je déboguais dans Visual Studio 2010, que nous venions d'installer et essayions de regarder un dictionnaire dans la fenêtre de surveillance rapide. Je vois des clés et des valeurs, mais en forant dans ces spectacles les membres du comte et des non-publics, les membres non-publics continuent la piste et je ne vois jamais les valeurs dans le dictionnaire. Je peux exécuter test. Prendre (10) et voir les valeurs, mais pourquoi devrais-je faire cela. Je n'ai plus installé VS 2008 pour comparer, mais il semble que je puisse déboguer un dictionnaire beaucoup plus facilement. Pourquoi est-ce comme ça maintenant? Est-ce juste un réglage que je mets en quelque sorte sur ma machine?Pourquoi le visualiseur de débogage de dictionnaire est-il moins utile dans Visual Studio 2010 pour le débogage Silverlight?

Code d'essai:

Dictionary<string, string> test = new Dictionary<string, string>(); 
    test.Add("a", "b"); 

EDIT: Je viens d'essayer le même débogage dans une application console et il fonctionne comme prévu. L'autre projet est une application Silverlight 4, pourquoi sont-ils différents?

Console Debug Screen Shot

Silverlight 4 Debug Screen Shot:

EDIT: Réponse de Microsoft Connect: « Ce fut une omission de notre part - nous avions déjà résolu ce problème exact pour Visual Studio 2008 SP1, mais ce correctif était malheureusement pas porté à Visual studio 2010 codebase. ce problème est résolu à nouveau (cette fois pour de bon!) et nous sommes à la recherche dans l'expédition ce correctif dans VS2010 SP1.

Alex Turner gestionnaire de programme Visual Basic et C# Compiler "Donc ça devrait être corrigé bientôt.

EDIT: J'ai juste vérifié ceci dans SP1 et cela fonctionne correctement.

+2

J'ai accepté la réponse de Hans et a présenté un Passant rapport de bogue à Microsoft. Nous verrons ce qui se passe: http://connect.microsoft.com/VisualStudio/commentaires/détails/557741/silverlight-4-dictionary-debugging. – Aligned

+0

Ouais, j'ai le même problème et ça souffle. Microsoft confirme son bug dans VS 2010 (* not * a beta) et il peut y avoir un correctif dans SP1. –

Répondre

0

Le visualiseur de débogueur pour le dictionnaire est exactement la même classe avec exactement le même comportement. C'est toujours la classe privée Mscorlib_DictionaryDebugView. Unxpanded montre Count, développé il montre un tableau des éléments.

Votre extrait de code suggère que vous utilisez une classe Dictionary complètement différente, qui n'est pas générique.

+0

Je viens d'éditer ma question ... J'ai eu la mise en forme incorrecte, qui a caché le générique de la définition. – Aligned

+0

Bien, ça le ferait. Votre extrait répète-t-il réellement le problème? –

+0

S'il vous plaît voir ma mise à jour mise à jour, il semble être différent pour une application Silverlight par rapport à une application de la console. – Aligned

4

Il existe une solution de contournement pour vider le contenu du dictionnaire dans le débogueur.

  1. Pour votre projet, ajoutez une référence à la dll LINQ (par exemple System.Core)

  2. Ajoutez l'instruction suivante à votre fichier source:

    utilisant System.Linq;

  3. Dans la fenêtre de la montre, tapez:

    test.Take (1)

  4. développer ensuite la ligne de groupe "Résultats View". Cela devrait vous donner la liste familière des paires de clés et de valeurs.

[Cette solution de contournement a été rapporté par rickpastoor sur connect.microsoft.com pour Bug 557741]