DebuggerTypeProxyAttribute Sınıf

Tanım

Bir tür için görüntü ara sunucusunu belirtir.

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
Devralma
DebuggerTypeProxyAttribute
Öznitelikler

Örnekler

Aşağıdaki kod örneği, hata ayıklayıcı görüntü ara sunucusu olarak kullanılacak özel bir iç içe türü belirtmek için öğesinin kullanımını DebuggerTypeProxyAttribute gösterir. Bu kod örneği, sınıfı için DebuggerDisplayAttribute sağlanan daha büyük bir örneğin parçasıdır.

[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

Açıklamalar

Not Bir türün hata ayıklama görünümünü önemli ölçüde ve temel olarak değiştirmeniz gerektiğinde ancak türün kendisini değiştirmediğinizde bu özniteliği kullanın.

özniteliği, bir geliştiricinin DebuggerTypeProxyAttribute görünümü türe göre uyarlamasına olanak tanıyarak bir tür için bir görüntüleme ara sunucusu belirtmek için kullanılır. Bu öznitelik derleme düzeyinde de kullanılabilir, bu durumda Target özelliği ara sunucunun kullanılacağı türü belirtir. Genel olarak, bu öznitelik, özniteliğin uygulandığı tür içinde oluşan özel bir iç içe türü belirtir. Tür görüntüleyicilerini destekleyen bir ifade değerlendirici, bir tür görüntülendiğinde bu özniteliği denetler. Öznitelik bulunursa, ifade değerlendirici, özniteliğin uygulandığı tür için görüntü ara sunucusu türüyle değiştirilir.

DebuggerBrowsableAttribute mevcut olduğunda, hata ayıklayıcı değişkeni penceresi yalnızca ara sunucu türünün genel üyelerini görüntüler. Özel üyeler görüntülenmez. Veri penceresinin davranışı, öznitelik tarafından geliştirilmiş görünümler tarafından değiştirilmez.

Gereksiz performans cezalarını önlemek için ifade değerlendiricileri, kullanıcı veri penceresindeki türün yanındaki artı işaretine (+) tıklayarak veya özniteliğin uygulaması aracılığıyla tür genişletilmediği sürece türün DebuggerBrowsableAttribute görüntü proxy'sindeki öznitelikleri incelememelidir. Bu nedenle, görüntü türüne hiçbir öznitelik uygulanmaz önerilir. Öznitelikler, görüntüleme türünün gövdesi içinde uygulanabilir ve uygulanmalıdır.

Oluşturucular

DebuggerTypeProxyAttribute(String)

Ara sunucu tür adını kullanarak sınıfının yeni bir örneğini DebuggerTypeProxyAttribute başlatır.

DebuggerTypeProxyAttribute(Type)

Ara sunucu türünü kullanarak sınıfının yeni bir örneğini DebuggerTypeProxyAttribute başlatır.

Özellikler

ProxyTypeName

Proxy türünün tür adını alır.

Target

Özniteliğin hedef türünü alır veya ayarlar.

TargetTypeName

Hedef türün adını alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.