Freigeben über


DebuggerTypeProxyAttribute Klasse

Definition

Gibt den Anzeigeproxy für einen Typ an.

public ref class DebuggerTypeProxyAttribute sealed : Attribute
[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
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
type DebuggerTypeProxyAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggerTypeProxyAttribute = class
    inherit Attribute
Public NotInheritable Class DebuggerTypeProxyAttribute
Inherits Attribute
Vererbung
DebuggerTypeProxyAttribute
Attribute

Beispiele

Das folgende Codebeispiel zeigt die Verwendung des DebuggerTypeProxyAttribute Typs zum Angeben eines privaten geschachtelten Typs, der als Debuggeranzeigeproxy verwendet werden soll. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die DebuggerDisplayAttribute Klasse bereitgestellt wird.

[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;
            }
        }
    }
}
<DebuggerDisplay("Count = {Count}"), DebuggerTypeProxy(GetType(MyHashtable.HashtableDebugView))> _
Class MyHashtable
    Inherits Hashtable
    Private Const TestString As String = "This should not appear in the debug window."

    Friend Class HashtableDebugView
        Private hashtable As Hashtable
        Public Shared TestString As String = "This should appear in the debug window."

        Public Sub New(ByVal hashtable As Hashtable)
            Me.hashtable = hashtable
        End Sub

        <DebuggerBrowsable(DebuggerBrowsableState.RootHidden)> _
        ReadOnly Property Keys as KeyValuePairs()
            Get
                Dim nkeys(hashtable.Count) as KeyValuePairs

                Dim i as Integer = 0
                For Each key As Object In hashtable.Keys
                    nkeys(i) = New KeyValuePairs(hashtable, key, hashtable(key))
                    i = i + 1
                Next
                Return nkeys
            End Get
        End Property

    End Class
End Class

Hinweise

Hinweis Verwenden Sie dieses Attribut, wenn Sie die Debugansicht eines Typs erheblich ändern und grundsätzlich ändern müssen, aber nicht den Typ selbst.

Das DebuggerTypeProxyAttribute Attribut wird verwendet, um einen Anzeigeproxy für einen Typ anzugeben, sodass ein Entwickler die Ansicht für den Typ anpassen kann. Dieses Attribut kann auch auf Assemblyebene verwendet werden, in diesem Fall gibt die Target Eigenschaft den Typ an, für den der Proxy verwendet wird. Im Allgemeinen gibt dieses Attribut einen privaten geschachtelten Typ an, der innerhalb des Typs auftritt, auf den das Attribut angewendet wird. Ein Ausdrucksauswerter, der Typanzeigen unterstützt, sucht nach diesem Attribut, wenn ein Typ angezeigt wird. Wenn das Attribut gefunden wird, ersetzt die Ausdrucksauswertung den Anzeigeproxytyp für den Typ, auf den das Attribut angewendet wird.

Wenn DebuggerBrowsableAttribute vorhanden ist, zeigt das Debugger-Variablenfenster nur die öffentlichen Mitglieder des Proxytyps an. Private Mitglieder werden nicht angezeigt. Das Verhalten des Datenfensters wird durch Attribut-erweiterte Ansichten nicht geändert.

Um unnötige Leistungseinbußen zu vermeiden, sollten Ausdrucksauswerter die Attribute des Anzeigeproxys des Typs nicht untersuchen, es sei denn, der Typ wird erweitert, entweder durch klickenden Benutzer auf das Pluszeichen (+) neben dem Typ in einem Datenfenster oder über die Anwendung des DebuggerBrowsableAttribute Attributs. Daher wird empfohlen, keine Attribute auf den Anzeigetyp anzuwenden. Attribute können und sollten innerhalb des Inhalts des Darstellungstyps angewendet werden.

Konstruktoren

Name Beschreibung
DebuggerTypeProxyAttribute(String)

Initialisiert eine neue Instanz der DebuggerTypeProxyAttribute Klasse mithilfe des Typnamens des Proxys.

DebuggerTypeProxyAttribute(Type)

Initialisiert eine neue Instanz der DebuggerTypeProxyAttribute Klasse mithilfe des Proxytyps.

Eigenschaften

Name Beschreibung
ProxyTypeName

Ruft den Typnamen des Proxytyps ab.

Target

Dient zum Abrufen oder Festlegen des Zieltyps für das Attribut.

TargetTypeName

Dient zum Abrufen oder Festlegen des Namens des Zieltyps.

TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen