AttributeProviderAttribute Classe

Definição

Permite redirecionar atributos. Esta 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 seguinte demonstra a utilização AttributeProviderAttribute de marcar uma DataSource propriedade com um tipo específico de IListSource. Para uma listagem completa do código, veja Como: Aplicar Atributos em Controlos Windows Forms.

[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

Observações

Existem alguns casos no modelo de objetos .NET Framework em que uma propriedade é propositadamente tipada para ser vaga. Por exemplo, a DataGridView.DataSource propriedade é tipada como object. A razão para isto é que esta propriedade pode aceitar vários tipos de entrada. Infelizmente, isto não oferece um local comum para adicionar metadados que descrevam as características da propriedade. Cada propriedade DataSource em todo o .NET Framework precisa de ter metadados idênticos para conversores de tipos, editores de tipos UI e outros serviços que requerem metadados. A solução AttributeProviderAttribute resolve esta situação.

Uma vez que este atributo é colocado numa propriedade, as regras para obter atributos para a coleção do MemberDescriptor.Attributes descritor de propriedade diferem. Normalmente, o descritor de propriedade recolhe atributos locais e depois funde-os com atributos do tipo de propriedade. Neste caso, os atributos são retirados do tipo devolvido do AttributeProviderAttribute, e não do tipo de propriedade real. Este atributo é usado para DataGridView.DataSource apontar o DataGridView.DataSource tipo específico do objeto para IListSource, e os metadados apropriados são colocados para IListSource permitir a ligação de dados. Ao fazê-lo, partes externas podem facilmente adicionar metadados a todas as fontes de dados.

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

  • Atributos da Propriedade

  • Atributos do Fornecedor de Atributos

  • Atributos de Tipo de Propriedade

Construtores

Name Description
AttributeProviderAttribute(String, String)

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

AttributeProviderAttribute(String)

Inicializa uma nova instância da AttributeProviderAttribute classe com o nome do tipo dado.

AttributeProviderAttribute(Type)

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

Propriedades

Name Description
PropertyName

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

TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
TypeName

Faz com que o nome do tipo qualificado para montagem seja passado para o construtor.

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)

Aplica-se a

Ver também