DebuggerTypeProxyAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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) |