AttributeProviderAttribute Classe

Definição

Habilita o redirecionamento de atributo. Essa classe não pode ser herdada.

public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
    inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
Herança
AttributeProviderAttribute
Atributos

Exemplos

O exemplo de código a seguir demonstra o uso AttributeProviderAttribute para marcar uma DataSource propriedade com um tipo específico de IListSource. Para obter uma listagem de código completa, consulte How to: Apply Attributes in Windows Forms Controls.

[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
    get => _dataGridView1.DataSource;
    set => _dataGridView1.DataSource = value;
}
<Category("Data"), _
Description("Indicates the source of data for the control."), _
RefreshProperties(RefreshProperties.Repaint), _
AttributeProvider(GetType(IListSource))> _
Public Property DataSource() As Object
    Get
        Return Me.dataGridView1.DataSource
    End Get

    Set(ByVal value As Object)
        Me.dataGridView1.DataSource = value
    End Set
End Property

Comentários

Há alguns casos no modelo de objeto .NET Framework em que uma propriedade é tipada propositalmente como vaga. Por exemplo, a DataGridView.DataSource propriedade é digitada como object. O motivo disso é que essa propriedade pode aceitar vários tipos de entrada. Infelizmente, isso não fornece um local comum para adicionar metadados para descrever as características da propriedade. Cada propriedade DataSource em todo .NET Framework precisa ter metadados idênticos para conversores de tipo, editores de tipo de interface do usuário e outros serviços que exigem metadados. Os AttributeProviderAttribute remédios dessa situação.

Depois que esse atributo é colocado em uma propriedade, as regras para obter atributos para a coleção do descritor de MemberDescriptor.Attributes propriedade diferem. Normalmente, o descritor de propriedade coleta atributos locais e os mescla com atributos do tipo de propriedade. Nesse caso, os atributos são retirados do tipo retornado do AttributeProviderAttributetipo , não do tipo de propriedade real. Esse atributo é usado DataGridView.DataSource para apontar o DataGridView.DataSource tipo específico do objeto e IListSourceos metadados apropriados são colocados IListSource para habilitar a associação de dados. Ao fazer isso, as partes externas podem facilmente adicionar metadados a todas as fontes de dados.

Os atributos obtidos de um tipo declarado no AttributeProviderAttribute têm uma prioridade entre os atributos do tipo da propriedade e os atributos na propriedade. A lista a seguir, em ordem de prioridade, mostra o conjunto completo de atributos mesclados disponíveis:

  • Atributos de propriedade

  • Atributos do provedor de atributos

  • Atributos de tipo de propriedade

Construtores

Nome Description
AttributeProviderAttribute(String, String)

Inicializa uma nova instância da AttributeProviderAttribute classe com o nome de tipo e o nome da propriedade fornecidos.

AttributeProviderAttribute(String)

Inicializa uma nova instância da AttributeProviderAttribute classe com o nome de tipo fornecido.

AttributeProviderAttribute(Type)

Inicializa uma nova instância da AttributeProviderAttribute classe com o tipo fornecido.

Propriedades

Nome Description
PropertyName

Obtém o nome da propriedade para a qual os atributos serão recuperados.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)
TypeName

Obtém o nome de tipo qualificado do assembly passado para o construtor.

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash dessa instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também