Отладка Silverlight, нет списка элементов - PullRequest
3 голосов
/ 22 апреля 2010

Когда я отлаживаю свое приложение Silverlight и использую список для внутреннего использования, я не могу навести на него курсор и увидеть элементы внутри списка. Я просто вижу RAW вид списка.

Если я хочу увидеть предметы, я должен написать свой собственный код, который утомителен. Это что-то нормальное для Silverlight?

У меня ДЕЙСТВИТЕЛЬНО правильное представление списка при отладке в обычных приложениях Console / WPF / ....

Пример: Silverlight (e.Result - это Dictionary<DateTime, decimal>): silverlight http://i39.tinypic.com/sq5ydh.png (ссылка: click )

Видите, как в первом примере нет представления списка?

И вот в этом, не Silverlight: не Silverlight http://i43.tinypic.com/2nhq4vt.png (ссылка: нажмите )

Система представляет собой 64-разрядную версию Windows 7 с Visual Studio 2010 и Silverlight 4 SDK RC2.

Ответы [ 3 ]

1 голос
/ 08 мая 2010

Класс Dictionary <> в Silverlight имеет атрибут [DebuggerTypeProxy], но он не работает в текущей версии набора инструментов. Также упоминается в этой теме . Тот же совет, сообщите об ошибке на connect.microsoft.com, чтобы они знали об этом, надеюсь, это будет исправлено в официальном выпуске RTM инструментов.

1 голос
/ 05 ноября 2010

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

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

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

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

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

    dic.Take (21)

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

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

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

альтернативный текст http://img169.imageshack.us/img169/3142/screen1fc.png

Я попытался отправить словарь из WCF в Silverlight, и я вижу данные в отладчике. Так что это должно работать нормально и для вас. Может быть, что-то есть в вашем коде?

Какой именно класс «Дата» вы используете? Пожалуйста, попробуйте DateTime, как я.

Вот мой код на стороне сервера:

public Dictionary<DateTime, decimal> GetDataUsingDataContract()
{
    Dictionary<DateTime, decimal> x = new Dictionary<DateTime, decimal>();
    x[DateTime.Now] = 2;
    x[DateTime.Now.AddDays(2)] = 3;
    return x;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...