DebuggerTypeProxyAttribute Třída

Definice

Určuje proxy zobrazení pro typ.Specifies the display proxy for a type.

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í DebuggerTypeProxyAttribute pro určení privátního vnořeného typu, který má být použit jako proxy zobrazení ladicího programu.The following code example shows the use of the DebuggerTypeProxyAttribute to specify a private nested type to be used as a debugger display proxy. Tento příklad kódu je součástí většího příkladu, který je k dispozici pro DebuggerDisplayAttribute třídu.This code example is part of a larger example provided for the DebuggerDisplayAttribute class.

[DebuggerTypeProxy(HashtableDebugView::typeid)]
ref class MyHashtable : Hashtable
{
private:
    static const String^ TestString = "This should not appear in the debug window.";

internal:
    ref class HashtableDebugView
    {
    private:
        Hashtable^ hashtable;
    public:
        static const String^ TestString = "This should appear in the debug window.";
        HashtableDebugView(Hashtable^ hashtable)
        {
            this->hashtable = hashtable;
        }

        [DebuggerBrowsable(DebuggerBrowsableState::RootHidden)]
        property array<KeyValuePairs^>^ Keys
        {
            array<KeyValuePairs^>^ get()
            {
                array<KeyValuePairs^>^ keys = gcnew array<KeyValuePairs^>(hashtable->Count);

                IEnumerator^ ie = hashtable->Keys->GetEnumerator();
                int i = 0;
                Object^ key;
                while (ie->MoveNext())
                {
                    key = ie->Current;
                    keys[i] = gcnew KeyValuePairs(hashtable, key, hashtable[key]);
                    i++;
                }
                return keys;
            }
        }
    };
};
[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 v případě, že potřebujete významně a v podstatě změnit zobrazení ladění typu, ale neměňte samotný typ.Note Use this attribute when you need to significantly and fundamentally change the debugging view of a type, but not change the type itself.

DebuggerTypeProxyAttributeAtribut slouží k určení zobrazovaného proxy serveru pro určitý typ, který vývojářům umožňuje přizpůsobit zobrazení pro daný typ.The DebuggerTypeProxyAttribute attribute is used to specify a display proxy for a type, allowing a developer to tailor the view for the type. Tento atribut lze použít také na úrovni sestavení, v takovém případě Target vlastnost určuje typ, pro který bude použit proxy server.This attribute can be used at the assembly level as well, in which case the Target property specifies the type for which the proxy will be used. Obecně tento atribut určuje soukromý vnořený typ, který se vyskytuje v rámci typu, na který je atribut použit.In general, this attribute specifies a private nested type that occurs within the type to which the attribute is applied. Vyhodnocovací filtr výrazů, který podporuje posluchače typu pro tento atribut při zobrazení typu.An expression evaluator that supports type viewers checks for this attribute when a type is displayed. Pokud je atribut nalezen, vyhodnocení výrazu nahradí typ proxy zobrazení pro typ, na který je atribut použit.If the attribute is found, the expression evaluator substitutes the display proxy type for the type the attribute is applied to.

Když DebuggerBrowsableAttribute je přítomen, okno proměnné ladicího programu zobrazí pouze veřejné členy typu proxy serveru.When the DebuggerBrowsableAttribute is present, the debugger variable window displays only the public members of the proxy type. Soukromé členy nejsou zobrazeny.Private members are not displayed. Chování okna data se v zobrazeních s rozšířenými atributy nemění.The behavior of the data window is not changed by attribute-enhanced views.

Aby nedocházelo k zbytečnému postihu výkonu, vyhodnocovací filtry výrazů by neměly kontrolovat atributy na proxy zobrazení typu, pokud není tento typ rozbalený, a to buď po kliknutí na znaménko plus (+) vedle typu v okně dat, nebo prostřednictvím aplikace DebuggerBrowsableAttribute atributu.To avoid unnecessary performance penalties, expression evaluators should not examine the attributes on the display proxy of the type unless the type is expanded, either through the user clicking the plus sign (+) next to the type in a data window, or through the application of the DebuggerBrowsableAttribute attribute. Proto se doporučuje, aby se pro typ zobrazení nepoužívaly žádné atributy.Therefore, it is recommended that no attributes be applied to the display type. Atributy mohou a by měly být aplikovány v těle typu zobrazení.Attributes can and should be applied within the body of the display type.

Konstruktory

DebuggerTypeProxyAttribute(String)

Inicializuje novou instanci DebuggerTypeProxyAttribute třídy pomocí názvu typu proxy serveru.Initializes a new instance of the DebuggerTypeProxyAttribute class using the type name of the proxy.

DebuggerTypeProxyAttribute(Type)

Inicializuje novou instanci DebuggerTypeProxyAttribute třídy pomocí typu proxy serveru.Initializes a new instance of the DebuggerTypeProxyAttribute class using the type of the proxy.

Vlastnosti

ProxyTypeName

Získá název typu typu proxy serveru.Gets the type name of the proxy type.

Target

Získá nebo nastaví cílový typ pro atribut.Gets or sets the target type for the attribute.

TargetTypeName

Získá nebo nastaví název cílového typu.Gets or sets the name of the target type.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor Attribute .When implemented in a derived class, gets a unique identifier for this Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.Returns a value that indicates whether this instance is equal to a specified object.

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

Vrátí hodnotu hash pro tuto instanci.Returns the hash code for this instance.

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

Získá Type aktuální instanci.Gets the Type of the current instance.

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

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

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

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda je tato instance rovna zadanému objektu.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

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

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

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

Načte informace o typu pro objekt, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can be used to get the type information for an interface.

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

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Zděděno od Attribute)

Platí pro