Aracılığıyla paylaş


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(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.

Bu DebuggerTypeProxyAttribute özniteliği, bir tür için görüntü proxy'si belirtmek ve bir geliştiricinin türün görünümünü uyarlamasına olanak sağlamak için kullanılır. Bu öznitelik, derleme düzeyinde de kullanılabilir, bu durumda Target özellik proxy'nin 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ğerlendiricisi, bir tür görüntülendiğinde bu özniteliği denetler. Öznitelik bulunursa, ifade değerlendirici, özniteliğin uygulandığı türü, görsel vekil türü ile değiştirir.

DebuggerBrowsableAttribute mevcut olduğunda, hata ayıklayıcısı değişken 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, kullanıcı veri penceresindeki türün yanındaki artı işaretine (+) veya özniteliğin uygulamasına tıklayarak tür genişletilmediği sürece ifade değerlendiricileri türün DebuggerBrowsableAttribute görüntü proxy'sindeki öznitelikleri incelememelidir. Bu nedenle, görüntü türüne hiçbir öznitelik uygulanmamış olması önerilir. Öznitelikler, görüntüleme türünün gövdesi içinde uygulanabilir ve uygulanmalıdır.

Oluşturucular

Name Description
DebuggerTypeProxyAttribute(String)

Ara sunucusunun tür adını kullanarak sınıfı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

Name Description
ProxyTypeName

Ara sunucu 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

Name Description
Equals(Object)

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

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

Bu örneğin karma kodunu döndürür.

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

Geçerli örneğin Type 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 Objectbasit bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
_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 kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.