Сокрытие полей от отладчика - PullRequest
32 голосов
/ 16 апреля 2009

Можно ли скрыть поля и / или свойства от отображения в окне просмотра отладчика? Видите, у нас здесь есть класс с более чем 50 закрытыми полями, большинство из которых доступны через открытые свойства. Это означает, что мы видим дублирование большого количества данных в списке наблюдения.

Есть ли способы контролировать это?

Ответы [ 5 ]

61 голосов
/ 16 апреля 2009

Попробуйте этот атрибут:

 [DebuggerBrowsable(DebuggerBrowsableState.Never)]

Используйте его, чтобы скрыть свои поля поддержки, поместив атрибут над объявлением поля следующим образом:

class Foo
{
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    int bar;  // this one will be hidden
    int baz;  // but this one will be visible like normal
}

Имейте в виду, что в перечислении DebuggerBrowsableState есть два других члена:

Collapsed: Сворачивает элемент в отладчике.
RootHidden: Показывает дочерние элементы коллекции, но скрывает сам корневой элемент.

6 голосов
/ 16 апреля 2009

Проверьте атрибут DebuggerBrowsable:

http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerbrowsableattribute.aspx

На самом деле, эта статья имеет несколько очень полезных советов для этой области:

http://msdn.microsoft.com/en-us/magazine/cc163974.aspx

Возможно, вы обнаружите, что использование DebuggerTypeProxy имеет больше смысла. Это позволяет вам предоставлять «пользовательское представление» типа.

1 голос
/ 15 июня 2011

Я знаю, что это старый, но вам будет намного лучше с использованием DebuggerTypeProxy http://msdn.microsoft.com/en-us/library/d8eyd8zc.aspx

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

1 голос
/ 16 апреля 2009

Атрибут DebuggerBrowsableAttribute описан в этом другом ТАК вопрос . Если вы интенсивно работаете с C #, то это хороший вопрос для чтения.

0 голосов
/ 16 апреля 2009

Вы можете использовать авто вместо местных или использовать часы и смотреть только переменные, представляющие интерес ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...