Usando o atributo DebuggerTypeProxy
DebuggerTypeProxyAttributeEspecifica um proxy ou um substituto para um tipo e alterações a maneira como o tipo é exibido nas janelas do depurador.Quando você exibir uma variável que possui um proxy, o proxy significa o tipo original na Exibir.A janela depurador de variável exibe somente os membros públicos do tipo proxy.Membros particulares não são exibidos.
Este atributo pode ser aplicado a:
Estruturas
Classes
Conjuntos de Módulos (Assemblies)
Uma classe de proxy do tipo deve ter um construtor que leva um argumento do tipo que o proxy irá substituir.O depurador cria uma nova instância da classe do tipo proxy toda vez que ele precisa exibir uma variável do tipo de destino.Isso pode ter implicações de desempenho.Como resultado, você não deve fazer mais qualquer trabalho no construtor que seja absolutamente necessário.
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 com o tipo de exibição.Atributos podem e devem ser usados no corpo do tipo de exibição.
É uma boa idéia para o tipo de proxy ser uma classe privada aninhada dentro da classe que os destinos de atributo.Isso permite que ele acesse membros internos facilmente.
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.
Usando genéricos com DebuggerTypeProxy
Suporte para genéricos é limitado.Para C# DebuggerTypeProxy oferece suporte somente a tipos abertos.Um tipo aberto, também chamado de um tipo não construído é um tipo genérico 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.
A sintaxe de um tipo aberto tem esta aparência:
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 abertos e fechados no C# consulte o Especificação de linguagem do C#, abrir seção 20.5.2 e fechada tipos.
Visual Basic não tem sintaxe de tipo aberto, portanto, não é a mesma coisa no Visual Basic.Em vez disso, você deve usar uma representação de seqüência de caracteres do nome do tipo aberto.
"Namespace.TypeName'2"
Consulte também
Referência
Usando o atributo DebuggerDisplay
Conceitos
Exibindo tipos de dados personalizados
Aprimorando a depuração com os atributos de exibição do depurador