Sdílet prostřednictvím


Řekněte ladicímu programu, jaký typ se má zobrazit pomocí atributu DebuggerTypeProxy (C#, Visual Basic, C++/CLI).

DebuggerTypeProxyAttribute určuje proxy server nebo stand-in pro typ a změní způsob zobrazení typu v oknech ladicího programu. Když zobrazíte proměnnou s proxy, proxy nahrazuje původní typ v zobrazení. V okně proměnné ladicího programu se zobrazí pouze veřejné členy typu proxy serveru. Soukromé členy se nezobrazují.

Tento atribut lze použít pro:

  • Structures
  • Třídy
  • Assemblies

Poznámka:

Pro nativní kód je tento atribut podporován pouze v kódu C++/CLI.

Třída proxy typu musí mít konstruktor, který přijímá argument typu, aby proxy mohla nahradit původní typ. Ladicí program vytvoří novou instanci třídy proxy typu pokaždé, když potřebuje zobrazit proměnnou cílového typu. To může mít vliv na výkon. Proto se vyhněte veškeré zbytečné práci v konstruktoru.

Aby se minimalizovalo snížení výkonu, vyhodnocovač výrazů nezkoumá atributy na zobrazeném proxy typu, pokud uživatel tento typ nerozbalí kliknutím na symbol + v okně ladicího programu nebo použitím DebuggerBrowsableAttribute. Proto neumisťujte atributy do samotného typu zobrazení. Atributy lze a měly by být použity v textu typu zobrazení.

Je vhodné, aby typ proxy byl privátní vnořenou třídou v rámci třídy, na kterou cílí atribut. To umožňuje snadný přístup k interním členům.

DebuggerTypeProxyAttribute lze dědit, takže pokud je pro základní třídu zadán proxy typ, vztahuje se na všechny odvozené třídy, pokud tyto odvozené třídy nezadávají vlastní typ proxy.

Pokud DebuggerTypeProxyAttribute se používá na úrovni sestavení, Target parametr určuje typ, který má proxy server nahradit.

Příklad použití tohoto atributu spolu s DebuggerDisplayAttribute a DebuggerTypeProxyAttribute, viz Použití DebuggerDisplay Atribut.

Důležité

Pokud vyberete možnost Zobrazit nezpracovanou strukturu objektů v oknech proměnných , DebuggerDisplay atribut se ignoruje. Toto nastavení se nachází v podokně Nástroje>Možnosti v části Všechna nastavení>Ladění>Obecné.

Důležité

Pokud vyberete možnost Zobrazit nezpracovanou strukturu objektů v oknech proměnných , DebuggerDisplay atribut se ignoruje. Toto nastavení se nachází v dialogovém okně Nástroje>Možnosti v části Ladění>Obecné.

Použití generických typů s DebuggerTypeProxy

Podpora obecných typů je omezená. V jazyce C# DebuggerTypeProxy podporuje pouze otevřené typy. Otevřený typ, označovaný také jako nekonstruovaný typ, je obecný typ, který není vytvořen s argumenty pro parametry typu. Uzavřené typy, označované také jako konstruované typy, se nepodporují.

Syntaxe otevřeného typu vypadá takto:

Namespace.TypeName<,>

Pokud jako cíl DebuggerTypeProxypoužijete obecný typ, musíte použít tuto syntaxi. Mechanismus DebuggerTypeProxy odvodí parametry typu za vás.

Další informace o otevřených a uzavřených typech v jazyce C# naleznete v části 20.5.2 Otevřené a uzavřené typy.

Visual Basic nemá syntaxi otevřeného typu, takže v jazyce Visual Basic nemůžete dělat totéž. Místo toho musíte použít řetězcovou reprezentaci názvu otevřeného typu.

"Namespace.TypeName'2"