2013-04-17 3 views
0

У меня есть Visual Studio WPF C# Решение, которое содержит сотни классов и проектов, которые мне нужно поддерживать. Я хочу отследить проблему в программном обеспечении, но у меня нет CLUE, где класс находится в решении. Есть ли способ отслеживать события в Visual Studio, чтобы помочь мне отследить этот класс?Отслеживать события в Visual Studio

Например, я запускаю программу, и я перехожу к разделу программы, имеющей проблему. Затем я нажимаю кнопку 100 раз. Есть ли вывод, который скажет мне, где это событие уволено?

+0

«Вы будете иметь, чтобы быть более точным, чем„проблема“, вы получаете сообщение об ошибке компилятора исключение во время выполнения Неожиданные результаты в том, что,?? Приложения или в Visual Studio Вопрос как указано, является неопровержимым. –

+0

Проблема не имеет значения. Ответ отсутствует. –

ответ

3

Для приложения WPF вы можете использовать Snoop, чтобы найти имя класса элемента управления. После запуска вы можете перетащить маркер цели на необходимый элемент управления, и он будет показан в дереве управления со всеми его свойствами.

Он также может отображать все события, происходящие в элементах управления WPF.

+0

Какая разница в Snoop и Inspect/UISpy? – David

+0

Это именно то, что я искал. Спасибо, что просто дал мне подходящий, конструктивный, непривлекательный, неясный ответ. –

+0

@ Давид, я лично использовал Snoop пару раз, и это сработало. Это не единственный инструмент, но я думаю, что это будет хорошей отправной точкой для OP. – alex

1

Используйте Log4Net, чтобы регистрировать свое событие на разных уровнях, таких как предупреждение, информация и ошибка. См. Также this post для быстрого обучения.

+0

Есть ли такая вещь, как «быстрый» учебник для Log4Net? Будет выполняться любое средство ведения журнала, в том числе класс «Trace», который уже есть в Framework. –

+0

Ответ: да и нет. Если вы предпочитаете быть очень точным, вы правы, а для некоторых новичков пример стоит тысячи слов. Что я подразумеваю под «быстрым», это сделать OP для быстрого запуска. это имеет смысл с вашей точки зрения? – David

0

Запустить программу.

enter image description here

С помощью программы бега вернуться к визуальной студии и нажмите паузу (или нажмите Ctrl + Alt + Перерыв).

enter image description here

Затем нажмите шаг в (или нажмите F11).

enter image description here

Ваше приложение получит фокус назад.

Trigger the event.

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

enter image description here

+0

Я думаю, что OP не знает, где поставить точку останова, потому что он имеет 1000 элементов управления wpf и не знает, какой из них в настоящее время отображается на экране. – alex

+0

Когда я нажимаю кнопку на кнопку, я не получаю контроль над приложением. Я думаю, это потому, что для работы этого метода нужно много работать в фоновом режиме. –

+0

@AMR: Подождите несколько секунд или просто нажмите Alt-Tab. Это снова заставило меня сосредоточиться. –

Смежные вопросы