DebuggerTypeProxyAttribute Osztály

Definíció

Megadja egy típus megjelenítési proxyját.

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
Öröklődés
DebuggerTypeProxyAttribute
Attribútumok

Példák

Az alábbi példakód azt mutatja be, hogy a DebuggerTypeProxyAttribute hibakereső megjelenítési proxyjaként használandó privát beágyazott típust adja meg. Ez a példakód egy nagyobb, az DebuggerDisplayAttribute osztályhoz tartozó példa része.

[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

Megjegyzések

Megjegyzés Ezt az attribútumot akkor használja, ha jelentősen és alapvetően módosítania kell egy típus hibakeresési nézetét, de magát a típust nem.

Az DebuggerTypeProxyAttribute attribútum egy típus megjelenítési proxyjának megadására szolgál, így a fejlesztő a nézetet a típushoz igazíthatja. Ez az attribútum a szerelvény szintjén is használható, ebben az esetben a Target tulajdonság azt a típust határozza meg, amelyhez a proxyt használni fogja. Ez az attribútum általában egy privát beágyazott típust határoz meg, amely abban a típusban fordul elő, amelyre az attribútumot alkalmazza. A típusmegjelenítőket támogató kifejezés-kiértékelő egy típus megjelenésekor ellenőrzi ezt az attribútumot. Ha az attribútum megtalálható, a kifejezésértékelő lecseréli a megjelenítési proxy típusát arra a típusra, amelyet az attribútum alkalmaz.

Amikor a DebuggerBrowsableAttribute hibakereső változó jelen van, a hibakereső változóablak csak a proxytípus nyilvános tagjait jeleníti meg. A privát tagok nem jelennek meg. Az adatablak viselkedését az attribútumok által bővített nézetek nem módosítják.

A szükségtelen teljesítménybeli büntetések elkerülése érdekében a kifejezésértékelők nem vizsgálják meg a típus megjelenítési proxyján lévő attribútumokat, kivéve, ha a típus ki van bontva, vagy a felhasználó által az adatablakban a típus melletti pluszjelre (+) kattintva, vagy az DebuggerBrowsableAttribute attribútum alkalmazásával. Ezért javasoljuk, hogy a megjelenítési típusra ne alkalmazzanak attribútumokat. Az attribútumok a megjelenítési típus törzsén belül alkalmazhatók.

Konstruktorok

Name Description
DebuggerTypeProxyAttribute(String)

Inicializálja az DebuggerTypeProxyAttribute osztály új példányát a proxy típusnevével.

DebuggerTypeProxyAttribute(Type)

Inicializálja az DebuggerTypeProxyAttribute osztály új példányát a proxy típusával.

Tulajdonságok

Name Description
ProxyTypeName

Lekéri a proxytípus nevét.

Target

Lekéri vagy beállítja az attribútum céltípusát.

TargetTypeName

Lekéri vagy beállítja a céltípus nevét.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még