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
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
    inherit Attribute
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 ao longo do .NET Framework precisa de ter metadados idênticos para conversores de tipos, editores de tipos UI e outros serviços que exijam 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