DebuggerTypeProxyAttribute Klass

Definition

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
DebuggerTypeProxyAttribute
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)

Gäller för

Se även