Usando um atributo DebuggerTypeProxy
This topic applies to:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium e Ultimate |
DebuggerTypeProxyAttributeEspecifica um proxy ou um substituto, de um tipo e a maneira do tipo é exibida nas janelas de depurador de alterações. Quando você exibir uma variável que possui um proxy, o proxy significa o tipo original no Exibir. The debugger variable window displays only the public members of the proxy type. Private members are not displayed.
This attribute can be applied to:
Structures
Classes
Assemblies
A type proxy class must have a constructor that takes an argument of the type that the proxy will replace. The debugger creates a new instance of the type proxy class every time it needs to display a variable of the target type. This can have performance implications. As a result, you should not do any more work in the constructor than absolutely necessary.
Para minimizar as penalidades de desempenho, o avaliador da expressão não o exame dos atributos no proxy de exibição do tipo, a menos que o tipo esteja expandido, o usuário clicando no símbolo + na janela depurador ou pelo uso de DebuggerBrowsableAttribute. Portanto, você não deve colocar atributos sobre o tipo de exibição. Attributes can and should be used in the body of the display type.
It is a good idea for the type proxy to be a private nested class within the class that the attribute targets. This allows it to access internal members easily.
Se DebuggerTypeProxyAttribute é usado no nível do assembly, o Target parâmetro especifica o tipo que o proxy irá substituir.
Para obter um exemplo de como usar esse atributo juntamente com DebuggerDisplayAttribute e DebuggerTypeProxyAttribute, consulteUsando o atributo DebuggerDisplay.
Using Generics with DebuggerTypeProxy
Support for generics is limited. Para C#, DebuggerTypeProxy oferece suporte a tipos abertos apenas. Um tipo aberto, também chamado de um tipo não construído, é um tipo genérico que não foi instanciado com argumentos para seus parâmetros de tipo. Tipos fechados, também chamados tipo construído, não são suportados.
The syntax for an open type looks like this:
Namespace.TypeName<,>
Se você usar um tipo genérico como um destino no DebuggerTypeProxy, você deve usar essa sintaxe. O DebuggerTypeProxy mecanismo infere os parâmetros de tipo para você.
Para obter mais informações sobre tipos de abertas e fechadas em C#, consulte a C# Language Specification, abra a seção 20.5.2 e fechado tipos.
Visual Basic does not have open type syntax, so you cannot do the same thing in Visual Basic. Instead, you must use a string representation of the open type name.
"Namespace.TypeName'2"
Consulte também
Referência
Usando o atributo DebuggerDisplay
Conceitos
Exibir os tipos de dados personalizados
Aprimorando a depuração com os atributos de exibição do depurador