Подтвердить что ты не робот

Скрытие полей из отладчика

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

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

4b9b3361

Ответ 1

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

 [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:. Это показывает дочерние элементы коллекции, но скрывает сам корневой элемент.

Ответ 2

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

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

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

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

Вы можете обнаружить, что использование DebuggerTypeProxy имеет больше смысла. Это позволяет вам предоставить "настраиваемый вид" этого типа.

Ответ 3

ОтладчикBrowsableAttribute рассматривается в этом другом вопросе fooobar.com/questions/638/.... Если вы делаете С# тяжело, тогда это хороший вопрос для чтения.

Ответ 4

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

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

Ответ 5

Вы можете использовать autos вместо locals или использовать часы и следить только за интересующими переменными...