AttributeProviderAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |