Compartilhar via


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
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 a seguir demonstra o uso AttributeProviderAttribute de para marcar uma DataSource propriedade com um tipo específico de IListSource. Para obter uma listagem de código completa, consulte Como aplicar atributos em controles Windows Forms.

[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
    get
    {
        return this.dataGridView1.DataSource;
    }

    set
    {
        this.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 é digitada 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 DataSource propriedade em todo o .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 obtidos do tipo retornado do AttributeProviderAttribute, não do tipo de propriedade real. Esse atributo é usado em DataGridView.DataSource para apontar o DataGridView.DataSource tipo específico do objeto para IListSourcee os metadados apropriados são colocados para IListSource habilitar a associação de dados. Ao fazer isso, as partes externas podem adicionar facilmente 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

AttributeProviderAttribute(String)

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

AttributeProviderAttribute(String, String)

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

AttributeProviderAttribute(Type)

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

Propriedades

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 este Attribute.

(Herdado de Attribute)
TypeName

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

Métodos

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 para a 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 Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_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 para um objeto, que pode ser usado para obter as informações de tipo para 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