DebuggerTypeProxyAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o proxy de visualização de um tipo.
public ref class DebuggerTypeProxyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
type DebuggerTypeProxyAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=true)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggerTypeProxyAttribute = class
inherit Attribute
Public NotInheritable Class DebuggerTypeProxyAttribute
Inherits Attribute
- Herança
- Atributos
Exemplos
O exemplo de código seguinte mostra o uso de para DebuggerTypeProxyAttribute especificar um tipo aninhado privado a ser usado como proxy de exibição de depurador. Este exemplo de código faz parte de um exemplo maior fornecido para a DebuggerDisplayAttribute classe.
[DebuggerTypeProxy(typeof(HashtableDebugView))]
class MyHashtable : Hashtable
{
private const string TestString = "This should not appear in the debug window.";
internal class HashtableDebugView
{
private Hashtable hashtable;
public const string TestString = "This should appear in the debug window.";
public HashtableDebugView(Hashtable hashtable)
{
this.hashtable = hashtable;
}
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public KeyValuePairs[] Keys
{
get
{
KeyValuePairs[] keys = new KeyValuePairs[hashtable.Count];
int i = 0;
foreach(object key in hashtable.Keys)
{
keys[i] = new KeyValuePairs(hashtable, key, hashtable[key]);
i++;
}
return keys;
}
}
}
}
<DebuggerDisplay("Count = {Count}"), DebuggerTypeProxy(GetType(MyHashtable.HashtableDebugView))> _
Class MyHashtable
Inherits Hashtable
Private Const TestString As String = "This should not appear in the debug window."
Friend Class HashtableDebugView
Private hashtable As Hashtable
Public Shared TestString As String = "This should appear in the debug window."
Public Sub New(ByVal hashtable As Hashtable)
Me.hashtable = hashtable
End Sub
<DebuggerBrowsable(DebuggerBrowsableState.RootHidden)> _
ReadOnly Property Keys as KeyValuePairs()
Get
Dim nkeys(hashtable.Count) as KeyValuePairs
Dim i as Integer = 0
For Each key As Object In hashtable.Keys
nkeys(i) = New KeyValuePairs(hashtable, key, hashtable(key))
i = i + 1
Next
Return nkeys
End Get
End Property
End Class
End Class
Observações
Nota Use este atributo quando precisar de alterar significativamente e fundamentalmente a vista de depuração de um tipo, mas sem alterar o próprio tipo.
O DebuggerTypeProxyAttribute atributo é usado para especificar um proxy de exibição para um tipo, permitindo que um desenvolvedor adapte a exibição para o tipo. Este atributo pode ser usado também ao nível da assembleia, caso em que a Target propriedade especifica o tipo para o qual o proxy será utilizado. Em geral, este atributo especifica um tipo aninhado privado que ocorre dentro do tipo ao qual o atributo é aplicado. Um avaliador de expressão que suporta visualizadores de tipo verifica esse atributo quando um tipo é exibido. Se o atributo for encontrado, o avaliador de expressão substituirá o tipo de proxy de exibição pelo tipo ao qual o atributo é aplicado.
Quando o DebuggerBrowsableAttribute está presente, a janela de variáveis do depurador exibe apenas os membros públicos do tipo de proxy. Membros privados não são exibidos. O comportamento da janela de dados não é alterado por exibições com atributos aprimorados.
Para evitar penalizações desnecessárias de desempenho, os avaliadores de expressões não devem examinar os atributos no proxy de exibição do tipo, a menos que o tipo seja expandido, seja através do clique do utilizador no sinal de mais (+) ao lado do tipo numa janela de dados, seja através da aplicação do DebuggerBrowsableAttribute atributo. Portanto, recomenda-se que nenhum atributo seja aplicado ao tipo de exibição. Os atributos podem e devem ser aplicados dentro do corpo do tipo de exibição.
Construtores
| Name | Description |
|---|---|
| DebuggerTypeProxyAttribute(String) |
Inicializa uma nova instância da DebuggerTypeProxyAttribute classe usando o nome de tipo do proxy. |
| DebuggerTypeProxyAttribute(Type) |
Inicializa uma nova instância da DebuggerTypeProxyAttribute classe usando o tipo do proxy. |
Propriedades
| Name | Description |
|---|---|
| ProxyTypeName |
Obtém o nome do tipo proxy. |
| Target |
Obtém ou define o tipo de alvo para o atributo. |
| TargetTypeName |
Obtém ou define o nome do tipo de alvo. |
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |