Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
DebuggerTypeProxyAttribute указывает прокси-сервер или автономный сервер для типа и изменяет способ отображения типа в окнах отладчика. При просмотре переменной, использующей прокси, прокси заменяет исходный тип в отображении. В окне переменной отладчика отображаются только общедоступные члены типа прокси-сервера. Приватные члены не отображаются.
Этот атрибут можно применить к:
- Структуры
- Классы
- Сборки
Замечание
Для машинного кода этот атрибут поддерживается только в коде C++/CLI.
Класс прокси типа должен иметь конструктор, который принимает аргумент заменяемого типа. Отладчик создает новый экземпляр класса прокси типа каждый раз, когда он должен отображать переменную целевого типа. Это может иметь последствия для производительности. В результате избегайте ненужных работ в конструкторе.
Чтобы свести к минимуму штрафы производительности, средство оценки выражений не проверяет атрибуты на отображающем прокси типа, если тип не развернут пользователем при щелчке на символ + в окне отладчика или при использовании DebuggerBrowsableAttribute. Поэтому не помещайте атрибуты в сам тип отображения. Атрибуты могут и должны использоваться в теле типа отображения.
Вполне разумно, чтобы прокси типа был частным вложенным классом в том классе, на который нацелен атрибут. Это позволяет легко получить доступ к внутренним членам.
DebuggerTypeProxyAttribute может быть наследован, поэтому если тип прокси указан в базовом классе, он применяется к любым производным классам, если эти производные классы не указывают собственный тип прокси.
Если DebuggerTypeProxyAttribute используется на уровне сборки, Target параметр задает тип для замены прокси-сервера.
Пример использования этого атрибута и DebuggerDisplayAttributeDebuggerTypeProxyAttributeсм. в разделе "Использование атрибута DebuggerDisplay".
Это важно
Если выбрать параметр Показать необработанную структуру объектов в окнах переменных, DebuggerDisplay атрибут игнорируется. Этот параметр находится в разделе Инструменты>Параметры в области Все параметры>Отладка>Общие.
Это важно
Если выбрать параметр Показать необработанную структуру объектов в окнах переменных, DebuggerDisplay атрибут игнорируется. Этот параметр расположен в диалоговом окне"Параметры>" в разделе"Общие сведения > отладке".
Использование обобщённых типов с отладчиком TypeProxy
Поддержка универсальных шаблонов ограничена. Для C#поддерживает DebuggerTypeProxy только открытые типы. Открытый тип, который также называется неконструированным типом, является универсальным типом, который не создается с аргументами для параметров типа. Закрытые типы, также называемые созданными типами, не поддерживаются.
Синтаксис открытого типа выглядит следующим образом:
Namespace.TypeName<,>
При использовании универсального типа в DebuggerTypeProxy качестве цели необходимо использовать этот синтаксис. Механизм DebuggerTypeProxy определяет параметры типа для вас.
Дополнительные сведения о открытых и закрытых типах в C# см. в разделе "Спецификация языка C#" раздела 20.5.2 " Открытые и закрытые типы".
Visual Basic не имеет синтаксиса открытого типа, поэтому вы не можете сделать то же самое в Visual Basic. Вместо этого необходимо использовать строковое представление имени открытого типа.
"Namespace.TypeName'2"