Aracılığıyla paylaş


DebuggerTypeProxy Özniteliğini (C#, Visual Basic, C++/CLI) kullanarak hata ayıklayıcıya hangi türün göstereceğini bildirin

DebuggerTypeProxyAttribute bir tür için bir ara sunucu veya stand-in belirtir ve türün hata ayıklayıcı pencerelerinde görüntülenme şeklini değiştirir. Proxy’ye sahip bir değişkeni görüntülediğinizde, proxy görüntüde özgün türün yerini alır. 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.

Bu öznitelik şu özelliklere uygulanabilir:

  • Structures
  • Sınıflar
  • Assemblies

Uyarı

Yerel kod için bu öznitelik yalnızca C++/CLI kodunda desteklenir.

Bir proxy sınıfının, proxy'nin yerini alacağı türü bir bağımsız değişken olarak alan bir oluşturucuya sahip olması gerekir. Hata ayıklayıcı, hedef türdeki bir değişkeni görüntülemek gerektiğinde tür vekil sınıfının yeni bir örneğini oluşturur. Bunun performans üzerindeki etkileri olabilir. Sonuç olarak, oluşturucuda gereksiz işlerden kaçının.

Performans cezalarını en aza indirmek için, kullanıcı hata ayıklayıcı penceresindeki + simgesine tıklayarak veya DebuggerBrowsableAttribute kullanarak türü genişletmediği sürece, ifade değerlendiricisi türün görüntüleme proxy'si üzerindeki öznitelikleri incelemez. Bu nedenle, öznitelikleri görüntü türünün kendisine yerleştirmeyin. Öznitelikler görüntü türünün gövdesinde kullanılabilir ve kullanılmalıdır.

Tür proxy'sinin özniteliğinin hedeflendiği sınıfın içinde özel bir iç içe sınıf olması iyi bir fikirdir. Bu, iç üyelere kolayca erişmesini sağlar.

DebuggerTypeProxyAttribute devralınabilir, bu nedenle bir tür ara sunucusu temel sınıfta belirtilirse türetilmiş sınıflar kendi tür ara sunucusunu belirtmediği sürece türetilmiş sınıflara uygulanır.

Toplama düzeyinde kullanılırsa, DebuggerTypeProxyAttribute parametresi, Target değiştirecek proxy'nin türünü belirtir.

ve DebuggerDisplayAttributeile DebuggerTypeProxyAttribute birlikte bu özniteliğin nasıl kullanılacağına ilişkin bir örnek için bkz. DebuggerDisplay Özniteliğini Kullanma.

Önemli

Değişkenlerin pencerelerinde nesnelerin ham yapısını göster seçeneğini belirlerseniz, DebuggerDisplay özniteliği yoksayılır. Bu ayar, Tüm Ayarlar>Hata Ayıklama> bölümündeki Araçlar>Seçenekleri bölmesinde bulunur.

Önemli

Değişkenlerin pencerelerinde nesnelerin ham yapısını göster seçeneğini belirlerseniz, DebuggerDisplay özniteliği yoksayılır. Bu ayar, Hata Ayıklama>Genel bölümündeki Araçlar>Seçenekleri iletişim kutusunda bulunur.

DebuggerTypeProxy ile Genel Türleri Kullanma

Genel kullanıma yönelik destek sınırlıdır. C# için yalnızca DebuggerTypeProxy açık türleri destekler. Yapılandırılmamış tür olarak da adlandırılan açık tür, tür parametreleri için bağımsız değişkenlerle örneklenmeyen genel bir türdür. Yapılı türler olarak da adlandırılan kapalı türler desteklenmez.

Açık bir türün söz dizimi şöyle görünür:

Namespace.TypeName<,>

içinde hedef olarak genel bir tür kullanıyorsanız, bu söz dizimini kullanmanız gerekir." Mekanizma, DebuggerTypeProxy için tür parametrelerini sizin yerinize çıkarır.

C# dilinde açık ve kapalı türler hakkında daha fazla bilgi için bkz. C# Dil Belirtimi, bölüm 20.5.2 Açık ve kapalı türler.

Visual Basic'te açık tür söz dizimi olmadığından, aynı şeyi Visual Basic'te yapamazsınız. Bunun yerine, açık tür adının dize gösterimini kullanmanız gerekir.

"Namespace.TypeName'2"