Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
DebuggerTypeProxyAttribute anger en proxy eller stand-in för en typ och ändrar hur typen visas i felsökningsfönster. När du visar en variabel som har en proxy står proxyn för den ursprungliga typen i visningen. Variabelfönstret för felsökningsprogrammet visar endast de offentliga medlemmarna av proxytypen. Privata medlemmar visas inte.
Det här attributet kan tillämpas på:
- Structures
- Klasserna
- Församlingar
Anmärkning
För intern kod stöds det här attributet endast i C++/CLI-kod.
En typproxyklass måste ha en konstruktor som tar ett argument av den typ som proxyn ska ersätta. Felsökningsprogrammet skapar en ny instans av typen proxyklass varje gång den behöver visa en variabel av måltypen. Detta kan få prestandakonsekvenser. Undvik därför onödigt arbete i konstruktorn.
För att minimera prestandapåföljder undersöker uttrycksutvärderaren inte attributen på visningsproxyn för typen, såvida inte typen expanderas av användaren som klickar på symbolen + i felsökningsfönstret eller med hjälp av DebuggerBrowsableAttribute. Placera därför inte attribut på själva visningstypen. Attributer kan och bör användas i huvudtexten i visningsformatet.
Det är en bra idé att typproxyn är en privat kapslad klass i klassen som attributet riktar in sig på. På så sätt kan den enkelt komma åt interna medlemmar.
DebuggerTypeProxyAttribute kan ärvas, så om en typproxy anges i en basklass gäller den för alla härledda klasser, såvida inte dessa härledda klasser anger sin egen typproxy.
Om DebuggerTypeProxyAttribute används på sammansättningsnivå anger parametern Target vilken typ av proxy som ska ersättas.
Ett exempel på hur du använder det här attributet tillsammans med DebuggerDisplayAttribute och DebuggerTypeProxyAttributefinns i Använda attributet DebuggerDisplay.
Viktigt!
Om du väljer alternativet DebuggerDisplay attributet. Den här inställningen finns i Verktyg>Alternativ-panelen under avsnittet Alla inställningar>Felsökning>Allmänt.
Viktigt!
Om du väljer alternativet DebuggerDisplay attributet. Den här inställningen finns i dialogrutan Verktygsalternativ> i avsnittet Felsöka>.
Använda generics med DebuggerTypeProxy
Stödet för generiska läkemedel är begränsat. För C# DebuggerTypeProxy stöder endast öppna typer. En öppen typ, även kallad en icke-konstruktiv typ, är en generisk typ som inte instansieras med argument för sina typparametrar. Stängda typer, även kallade konstruerade typer, stöds inte.
Syntaxen för en öppen typ ser ut så här:
Namespace.TypeName<,>
Om du använder en allmän typ som mål i DebuggerTypeProxymåste du använda den här syntaxen. Mekanismen DebuggerTypeProxy härleder typparametrarna åt dig.
Mer information om öppna och stängda typer i C# finns i C#-språkspecifikationen, avsnitt 20.5.2 Öppna och stängda typer.
Visual Basic har inte öppen typsyntax, så du kan inte göra samma sak i Visual Basic. I stället måste du använda en strängrepresentation av namnet på den öppna typen.
"Namespace.TypeName'2"