Sdílet prostřednictvím


DebuggerTypeProxyAttribute Třída

Definice

Určuje zobrazovaný proxy server pro 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
Dědičnost
DebuggerTypeProxyAttribute
Atributy

Příklady

Následující příklad kódu ukazuje použití k určení privátního DebuggerTypeProxyAttribute vnořeného typu, který se má použít jako proxy zobrazení ladicího programu. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu DebuggerDisplayAttribute.

[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

Poznámky

Poznámka Tento atribut použijte, pokud potřebujete výrazně a zásadně změnit zobrazení ladění typu, ale ne změnit samotný typ.

Atribut DebuggerTypeProxyAttribute se používá k určení proxy zobrazení pro typ, což umožňuje vývojáři přizpůsobit zobrazení pro typ. Tento atribut lze použít také na úrovni sestavení, v takovém případě Target vlastnost určuje typ, pro který bude proxy server použit. Obecně platí, že tento atribut určuje privátní vnořený typ, který se vyskytuje v rámci typu, na který je atribut použit. Vyhodnocovače výrazů, který podporuje prohlížeče typů, kontroluje tento atribut při zobrazení typu. Pokud se atribut najde, vyhodnocovač výrazu nahradí typ, na který se atribut aplikuje, typem zobrazení proxy.

Pokud je DebuggerBrowsableAttribute přítomen, okno proměnné ladicího programu zobrazuje pouze veřejné prvky typu proxy. Soukromé členy se nezobrazují. Zobrazení s rozšířenými atributy nemění chování datového okna.

Aby nedocházelo k zbytečným sankcím za výkon, vyhodnocovače výrazů by neměly zkoumat atributy na zobrazovaném proxy serveru typu, pokud není typ rozbalený, a to buď tak, že uživatel klikne na znaménko plus (+) vedle typu v okně dat nebo prostřednictvím použití atributu DebuggerBrowsableAttribute . Proto se doporučuje, aby nebyly použity žádné atributy pro typ zobrazení. Atributy lze a měly by být použity v textu typu zobrazení.

Konstruktory

Name Description
DebuggerTypeProxyAttribute(String)

Inicializuje novou instanci DebuggerTypeProxyAttribute třídy pomocí názvu typu proxy.

DebuggerTypeProxyAttribute(Type)

Inicializuje novou instanci DebuggerTypeProxyAttribute třídy pomocí typu proxy.

Vlastnosti

Name Description
ProxyTypeName

Získá název typu proxy.

Target

Získá nebo nastaví cílový typ atributu.

TargetTypeName

Získá nebo nastaví název cílového typu.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Name Description
Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí kód hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro

Viz také