DebuggerTypeProxyAttribute DebuggerTypeProxyAttribute DebuggerTypeProxyAttribute DebuggerTypeProxyAttribute Class

Definizione

Specifica il proxy di visualizzazione per un tipo.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)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
type DebuggerTypeProxyAttribute = class
    inherit Attribute
Public NotInheritable Class DebuggerTypeProxyAttribute
Inherits Attribute
Ereditarietà
DebuggerTypeProxyAttributeDebuggerTypeProxyAttributeDebuggerTypeProxyAttributeDebuggerTypeProxyAttribute
Attributi

Esempi

Nell'esempio di codice seguente viene illustrato l'utilizzo DebuggerTypeProxyAttribute di per specificare un tipo annidato privato da utilizzare come proxy di visualizzazione del debugger.The following code example shows the use of the DebuggerTypeProxyAttribute to specify a private nested type to be used as a debugger display proxy. Questo esempio di codice fa parte di un esempio più ampio fornito DebuggerDisplayAttribute per la classe.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 'HashtableDebugView
End Class 'MyHashtable

Commenti

Nota Utilizzare questo attributo quando è necessario modificare in modo significativo e sostanziale la visualizzazione di debug di un tipo, ma non modificare il tipo stesso.Note Use this attribute when you need to significantly and fundamentally change the debugging view of a type, but not change the type itself.

L'attributo DebuggerTypeProxyAttribute viene usato per specificare un proxy di visualizzazione per un tipo, consentendo a uno sviluppatore di personalizzare la vista per il tipo.The DebuggerTypeProxyAttribute attribute is used to specify a display proxy for a type, allowing a developer to tailor the view for the type. Questo attributo può essere utilizzato anche a livello di assembly, nel qual caso la Target proprietà specifica il tipo per il quale verrà utilizzato il proxy.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. In generale, questo attributo specifica un tipo annidato privato che si verifica all'interno del tipo a cui viene applicato l'attributo.In general, this attribute specifies a private nested type that occurs within the type to which the attribute is applied. Un analizzatore di espressioni che supporta i visualizzatori di tipo cerca questo attributo quando viene visualizzato un tipo.An expression evaluator that supports type viewers checks for this attribute when a type is displayed. Se l'attributo viene trovato, l'analizzatore di espressioni sostituisce il tipo proxy di visualizzazione per il tipo a cui l'attributo viene applicato.If the attribute is found, the expression evaluator substitutes the display proxy type for the type the attribute is applied to.

Quando DebuggerBrowsableAttribute è presente, nella finestra delle variabili del debugger vengono visualizzati soltanto i membri pubblici del tipo proxy.When the DebuggerBrowsableAttribute is present, the debugger variable window displays only the public members of the proxy type. I membri privati non vengono visualizzati.Private members are not displayed. Il comportamento della finestra dei dati non viene modificato dalle visualizzazioni avanzate dell'attributo.The behavior of the data window is not changed by attribute-enhanced views.

Per evitare inutili prestazioni, gli analizzatori di espressioni non devono esaminare gli attributi sul proxy di visualizzazione del tipo, a meno che il tipo non venga espanso, tramite l'utente che fa clic sul segno più (+) accanto al tipo in una finestra dati o tramite il applicazione dell' DebuggerBrowsableAttribute attributo.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. È quindi consigliabile non applicare attributi al tipo visualizzato.Therefore, it is recommended that no attributes be applied to the display type. È possibile e consigliabile applicare gli attributi nel corpo del tipo visualizzato.Attributes can and should be applied within the body of the display type.

Costruttori

DebuggerTypeProxyAttribute(String) DebuggerTypeProxyAttribute(String) DebuggerTypeProxyAttribute(String) DebuggerTypeProxyAttribute(String)

Inizializza una nuova istanza della classe DebuggerTypeProxyAttribute utilizzando il nome del tipo del proxy.Initializes a new instance of the DebuggerTypeProxyAttribute class using the type name of the proxy.

DebuggerTypeProxyAttribute(Type) DebuggerTypeProxyAttribute(Type) DebuggerTypeProxyAttribute(Type) DebuggerTypeProxyAttribute(Type)

Inizializza una nuova istanza della classe DebuggerTypeProxyAttribute utilizzando il tipo del proxy.Initializes a new instance of the DebuggerTypeProxyAttribute class using the type of the proxy.

Proprietà

ProxyTypeName ProxyTypeName ProxyTypeName ProxyTypeName

Ottiene il nome del tipo del proxy.Gets the type name of the proxy type.

Target Target Target Target

Ottiene o imposta il tipo di destinazione per l'attributo.Gets or sets the target type for the attribute.

TargetTypeName TargetTypeName TargetTypeName TargetTypeName

Ottiene o imposta il nome del tipo di destinazione.Gets or sets the name of the target type.

TypeId TypeId TypeId TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Si applica a

Vedi anche