Почему визуализатор отладки словаря менее полезен в Visual Studio 2010 для отладки Silverlight? - PullRequest
10 голосов
/ 07 мая 2010

Я отлаживал в Visual Studio 2010, которую мы только что установили, и пытался посмотреть словарь в окне быстрого просмотра. Я вижу Ключи и Значения, но углубляясь в них, мы видим, что элементы Count и Non-Public, Non-Public члены продолжают путь, и я никогда не вижу значений в словаре. Я могу запустить test.Take (10) и посмотреть значения, но зачем мне это делать. У меня больше не установлено VS 2008 для сравнения, но кажется, что я мог бы отладить словарь гораздо проще. Почему так сейчас? Это просто настройка, которую я установил на своей машине?

Тестовый код:

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

EDIT: Я только что попробовал ту же отладку в консольном приложении, и она работает, как и ожидалось. Другой проект - приложение Silverlight 4, чем они отличаются?

Снимок экрана консоли отладки

Снимок экрана отладки Silverlight 4 :

РЕДАКТИРОВАТЬ: Ответ от Microsoft Connect: «Это было упущением с нашей стороны - мы ранее исправили эту проблему для Visual Studio 2008 с пакетом обновления 1 (SP1), но, к сожалению, это исправление не было перенесено в кодовую базу Visual Studio 2010. Теперь это исправлено снова (на этот раз навсегда!), И мы Ищем доставку этого исправления в VS2010 SP1.

Алекс Тернер Менеджер программы Компилятор Visual Basic и C # "Так что это должно быть исправлено в ближайшее время.

РЕДАКТИРОВАТЬ: Я только что дважды проверил это в SP1, и он работает правильно.

Ответы [ 2 ]

4 голосов
/ 05 ноября 2010

Существует способ обхода содержимого словаря в отладчике.

  1. В свой проект добавьте ссылку на linq dll (например, System.Core)

  2. Добавьте следующее утверждение в ваш исходный файл:

    с использованием System.Linq;

  3. В окне просмотра введите:

    test.Take (1)

  4. Затем разверните строку группы «Представление результатов». Это должно дать вам знакомый список пар ключ-значение.

[Об этом сообщении сообщил rickpastoor на connect.microsoft.com для ошибки 557741]

0 голосов
/ 07 мая 2010

Визуализатор отладчика для Dictionary - это точно такой же класс с точно таким же поведением.Это все еще частный класс Mscorlib_DictionaryDebugView.Нераспространенный - показывает число, расширенный - массив элементов.

Ваш фрагмент кода предполагает, что вы используете совершенно другой класс Dictionary, который не является универсальным.

...