10

Stavo eseguendo il debug in Visual Studio 2010, che abbiamo appena installato e cercando di guardare un dizionario nella finestra di controllo rapido. Vedo Keys e Valori, ma eseguendo il drill in questi show i membri Count e Non-Public, i membri Non-Public continuano la traccia e non vedo mai i valori nel dizionario. Posso eseguire test.Take (10) e vedere i valori, ma perché dovrei farlo. Non ho più installato VS 2008 per il confronto, ma sembra che potrei eseguire il debug di un dizionario molto più facilmente. Perché è così adesso? È solo un'impostazione che ho impostato in qualche modo sulla mia macchina?Perché il visualizzatore di debug del dizionario è meno utile in Visual Studio 2010 per il debug di Silverlight?

Codice di prova:

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

EDIT: Ho appena provato la stessa di debug in una console app e funziona come previsto. L'altro progetto è un'applicazione Silverlight 4, perché sono diversi?

Console Debug Screen Shot

Silverlight 4 Debug Screen Shot:

EDIT: risposta da Microsoft Connect: "Questa è stata un'omissione da parte nostra - avevamo già risolto questo problema esatto per Visual Studio 2008 SP1, ma questa correzione è stata purtroppo non portato su Visual Studio 2010 codebase. questo è stato corretto di nuovo (questa volta per sempre!) e stiamo esaminando la spedizione questa correzione in VS2010 SP1.

Alex Turner Program manager Visual Basic e C# Compiler "Quindi dovrebbe essere risolto presto.

MODIFICA: l'ho appena verificato in SP1 e funziona correttamente.

+2

ho accettato la risposta di Hans passant e presentato un bug report a Microsoft. Vedremo cosa succede: http://connect.microsoft.com/VisualStudio/feedback/dettagli/557741/silverlight-4-dizionario-debug. – Aligned

+0

Sì, sto avendo lo stesso problema e soffia. Microsoft conferma un bug in VS 2010 (* non * una versione beta) e potrebbe esserci una correzione in SP1. –

risposta

0

Il visualizzatore debugger per Dizionario è la stessa classe con lo stesso identico comportamento. È ancora la classe privata Mscorlib_DictionaryDebugView. Esponibile mostra Count, espanso mostra una matrice di elementi.

Lo snippet di codice suggerisce che si sta utilizzando una classe dizionario completamente diversa, una non generica.

+0

Ho appena modificato la mia domanda ... Ho avuto la formattazione errata, che ha nascosto la stringa generica della definizione. – Aligned

+0

Giusto, lo farebbe. Il tuo frammento effettivamente ripropone il problema? –

+0

Vedere la mia modifica aggiornata, sembra essere diverso per un'app Silverlight rispetto a un'app Console. – Aligned

4

C'è una soluzione alternativa per scaricare il contenuto del dizionario nel debugger.

  1. al progetto, aggiungere un riferimento alla DLL LINQ (ad esempio System.Core)

  2. aggiungere la seguente istruzione al file sorgente:

    utilizzando System.Linq;

  3. Nella finestra di controllo, tipo:

    test.Take (1)

  4. Quindi espandere la "Visualizza risultati" riga del gruppo. Questo dovrebbe darti la lista familiare di coppie chiave, valore.

[Questa soluzione è stata riportata dal rickpastoor su connect.microsoft.com per Bug 557741]

Problemi correlati