DebuggerTypeProxyAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger visningsproxy för en typ.
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
- Arv
- Attribut
Exempel
I följande kodexempel visas användningen av DebuggerTypeProxyAttribute för att ange en privat kapslad typ som ska användas som en visningsproxy för felsökningsprogram. Det här kodexemplet är en del av ett större exempel för DebuggerDisplayAttribute klassen.
[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
Kommentarer
Observera Använd det här attributet när du behöver ändra felsökningsvyn av en typ avsevärt och i grunden, men inte ändra själva typen.
Attributet DebuggerTypeProxyAttribute används för att ange en visningsproxy för en typ, så att en utvecklare kan skräddarsy vyn för typen. Det här attributet kan också användas på sammansättningsnivå, i vilket fall Target egenskapen anger vilken typ proxyn ska användas för. I allmänhet anger det här attributet en privat kapslad typ som inträffar inom den typ som attributet tillämpas på. En uttrycksutvärdering som stöder typvisning söker efter det här attributet när en typ visas. Om attributet hittas ersätter uttrycksutvärderaren visningsproxytypen för den typ som attributet tillämpas på.
När är DebuggerBrowsableAttribute närvarande visar felsökningsvariabelfönstret endast de offentliga medlemmarna av proxytypen. Privata medlemmar visas inte. Datafönstrets beteende ändras inte av attributförstärkta vyer.
För att undvika onödiga prestandapåföljder bör uttrycksutvärderingarna inte undersöka attributen på visningsproxyn för typen om inte typen expanderas, antingen genom att användaren klickar på plustecknet (+) bredvid typen i ett datafönster eller via attributets DebuggerBrowsableAttribute program. Därför rekommenderar vi att inga attribut tillämpas på visningstypen. Attribut kan och bör tillämpas i brödtexten i visningstypen.
Konstruktorer
| Name | Description |
|---|---|
| DebuggerTypeProxyAttribute(String) |
Initierar en ny instans av DebuggerTypeProxyAttribute klassen med hjälp av proxyns typnamn. |
| DebuggerTypeProxyAttribute(Type) |
Initierar en ny instans av DebuggerTypeProxyAttribute klassen med hjälp av proxytypen. |
Egenskaper
| Name | Description |
|---|---|
| ProxyTypeName |
Hämtar typnamnet för proxytypen. |
| Target |
Hämtar eller anger måltypen för attributet. |
| TargetTypeName |
Hämtar eller anger namnet på måltypen. |
| TypeId |
När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute. (Ärvd från Attribute) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt. (Ärvd från Attribute) |
| GetHashCode() |
Returnerar hash-koden för den här instansen. (Ärvd från Attribute) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IsDefaultAttribute() |
När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen. (Ärvd från Attribute) |
| Match(Object) |
När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt. (Ärvd från Attribute) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare. (Ärvd från Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt. (Ärvd från Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1). (Ärvd från Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Ger åtkomst till egenskaper och metoder som exponeras av ett objekt. (Ärvd från Attribute) |