Прочитать на английском

Поделиться через


DebuggerTypeProxyAttribute Класс

Определение

Указывает прокси-тип отображения для типа.

[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
Наследование
DebuggerTypeProxyAttribute
Атрибуты

Примеры

В следующем примере кода показано использование для указания частного DebuggerTypeProxyAttribute вложенного типа, который будет использоваться в качестве прокси-сервера отображения отладчика. Этот пример входит в состав более крупного примера использования класса DebuggerDisplayAttribute.

[DebuggerTypeProxy(typeof(HashtableDebugView))]
class MyHashtable : Hashtable
{
    private const string TestString = "This should not appear in the debug window.";

    internal class HashtableDebugView
    {
        private Hashtable hashtable;
        public const string TestString = "This should appear in the debug window.";
        public HashtableDebugView(Hashtable hashtable)
        {
            this.hashtable = hashtable;
        }

        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public KeyValuePairs[] Keys
        {
            get
            {
                KeyValuePairs[] keys = new KeyValuePairs[hashtable.Count];

                int i = 0;
                foreach(object key in hashtable.Keys)
                {
                    keys[i] = new KeyValuePairs(hashtable, key, hashtable[key]);
                    i++;
                }
                return keys;
            }
        }
    }
}

Комментарии

Примечание Используйте этот атрибут, если необходимо существенно и существенно изменить представление отладки типа, но не изменять сам тип.

Атрибут DebuggerTypeProxyAttribute задает прокси-тип отображения для типа, позволяя разработчику настроить представление этого типа. Этот атрибут также можно использовать на уровне сборки. В этом случае Target свойство указывает тип, для которого будет использоваться прокси-сервер. Как правило, этот атрибут указывает частный вложенный тип, который находится в типе, к которому применяется атрибут. При отображении типа вычислитель выражений, поддерживающий средства просмотра типов, проверяет наличие этого атрибута. Если он найден, вычислитель выражений заменяет прокси-тип отображения на тип, к которому применен этот атрибут.

Если атрибут DebuggerBrowsableAttribute задан, окно переменных отладчика отображает только открытые члены прокси-типа. Закрытые члены не отображаются. При использовании атрибутов просмотра поведение окна данных не изменяется.

Чтобы избежать ненужных штрафов за производительность, вычислителям выражений не следует проверять атрибуты на прокси-сервере отображения типа, если только тип не будет развернут либо с помощью щелчка пользователем знака "плюс" (+) рядом с типом в окне данных, либо с помощью применения атрибута DebuggerBrowsableAttribute . В связи с этим не рекомендуется применять атрибуты к типам отображения. Атрибуты можно и нужно применять в основной части типа отображения.

Конструкторы

DebuggerTypeProxyAttribute(String)

Инициализирует новый экземпляр класса DebuggerTypeProxyAttribute, используя указанное имя прокси-типа.

DebuggerTypeProxyAttribute(Type)

Инициализирует новый экземпляр класса DebuggerTypeProxyAttribute, используя указанный прокси-тип.

Свойства

ProxyTypeName

Возвращает имя прокси-типа.

Target

Возвращает или задает для атрибута тип целевого объекта.

TargetTypeName

Возвращает или задает имя типа целевого объекта.

TypeId

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

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел