Могу ли я пометить класс как не мой код, поэтому отладчик переступает через него? - PullRequest
13 голосов
/ 10 февраля 2011

У меня есть служебный класс, который был тщательно протестирован, и я не хочу, чтобы отладчик VS входил ни в один из его методов.Я думаю, что слышал о способе пометить что-то как не мой код, так что настройка отладчика Just My Code заставляет отладчик перешагивать через эти вызовы метода, но я не могу вспомнить, что такое атрибут класса (и не могуЯ успешно Google для него).

Я знаю, что я мог бы разделить этот класс на его собственную сборку и построить его в режиме выпуска, чтобы облегчить проблему, но я хотел бы перейти к некоторым из сборки (и яхотел бы сохранить этот класс там, где он есть).

Возможно ли это, или я мечтал об этой опции?

Обновление

Я сделалнекоторое тестирование с двумя опциями (DebuggerStepThrough и DebuggerNonUserCode), и я обнаружил, что DebuggerNonUserCode ведет себя точно так же, как и фреймворк, когда Just My Code включено / отключено.Атрибут DebuggerStepThrough всегда заставляет отладчик пропускать раздел, отмеченный атрибутом.Ради согласованности я использовал DebuggerNonUserCode.

Ответы [ 3 ]

20 голосов
/ 10 февраля 2011

Вы можете использовать атрибут DebuggerStepThrough , чтобы пропустить его.

12 голосов
/ 10 февраля 2011

Вы ищете атрибут DebuggerNonUserCode .

0 голосов
/ 28 июня 2019

Если судить по его имени, атрибут [DebuggerNonUserCode] должен это делать, но это не так. Итак, принятый ответ неверен, или, по крайней мере, он не работает для меня в VS2017.

Судя по названию, атрибут [DebuggerStepThrough] никогда не предназначался для того, чтобы делать то, о чем просит вопрос, и неудивительно, что он этого не делает. Таким образом, ответ с 20 ответами также неверен, или, по крайней мере, он не работает для меня в VS2017.

Что у меня работает

является атрибутом [ DebuggerHidden ].

Иди на цифру.

...